mots clefs

Je reviens sur l’utilisation des mots clefs:

-si j’ai bien compris, malgré l’utilisation de multiples mots clefs (>50), le tri dans la base avec par exemple affichage d’articles en fonction des types puis des mots clefs n’est pas PLUS LENTE qu’une boucle.
est ce bien ça?

  • et c’est la mise « en cache » qui l’explique … oui?

Ma principale question étant la rapidité.
Pourquoi cette question:
je vais proposer à mes auteurs de nombreuses familles de mots clefs en particulier:
TYPE : médical TITRE: angine,herpès,etc…
autre TYPE système de classification international TITRE: code1, code2 etc…

Je ne peux pas utiliser le système rubriques qui est plus « naturellement » réparti selon une hiérarchie « familière » aux auteurs: Hôpital, nom du service, département etc…

Je vais donc naturellement trier par date de publication mais aussi par services, j’utiliserai donc le système de mots clefs qui est là aussi familier aux auteurs médicaux pour proposer des affichages et/ou des recherches d’articles par pathologie et classification internationale.

D’où la question de la rapidité d’accès…

C’est dommage qu’au delà de 50 mots clefs il n’y ait pas à la fois la liste déroulante ET le moteur de recherche.
ou qu’il n’y ait pas un sélection double :
première liste> choix famille mots clefs deuxième liste> choix mots clefs dans la famille choisie **troisième>**moteur recherche

merci de me donner votre avis…

Maurice

Hello,

-si j'ai bien compris, malgré l'utilisation de multiples mots clefs (>50), le tri dans la base avec par exemple affichage d'articles en fonction des types puis des mots clefs n'est pas PLUS LENTE qu'une boucle.
est ce bien ça?

Je serais bien incapable de répondre sur la rapidité _précise_
des mots-clés, mais il n'y a aucune raison que ce soit beaucoup
plus lent ni beaucoup plus rapide que le reste. C'est tout ce
que je peux dire, mais si ton serveur n'est pas trop lent et
que tu n'as pas de dizaines de milliers de mots-clés, ça devrait
aller. Les mots-clés sont notamment gérés exactement de la même
façon (algorithmiquement parlant) que les auteurs.

Pour l'instant et pour indication, le seul site à ma connaissance
qui utilise couramment les mots-clés est le Monde Diplomatique, il
y a environ 400 mots-clés, et ça tourne correctement.

- et c'est la mise "en cache" qui l'explique ... oui?

Pas exactement. La mise en cache explique l'instantanéité
de l'affichage des pages quand elles ne sont pas recalculées,
quelque soit leur complexité. Par contre, les rares fois
où une page doit être recalculée, le temps de calcul dépend
évidemment de la complexité de la page ; c'est sensible en
particulier sur les serveurs un peu lents ou un peu trop
chargés.

Je vais donc naturellement trier par date de publication mais aussi par services, j'utiliserai donc le système de mots clefs qui est là aussi familier aux auteurs médicaux pour proposer des affichages et/ou des recherches d'articles par pathologie et classification internationale.

Oui, c'est là pour ça :))

C'est dommage qu'au delà de 50 mots clefs il n'y ait pas à la fois la liste déroulante ET le moteur de recherche.

Mmmh, ça dépend des avis. Ca complexifie l'interface ; de
plus, la liste déroulante devient vraiment de peu d'utilité
quand il y a beaucoup de mots-clés.

Bon, si tu es vraiment pointilleux la rapidité, je pense que tu
devrais t'intéresser aux pistes suivantes :

- ton hébergement Web est-il de bonne qualité en performances ?
Evidemment, c'est subjectif. On peut dire que "mauvaise qualité"
recouvre à coup sûr les Free et autres hébergeurs gratuits (la
plupart). "Bonne qualité" inclut forcément une machine dédiée
(i.e. qui ne sert qu'à ton site) de fabrication récente, mais
aussi des hébergeurs commerciaux pas trop au rabais. Entre les
deux, ça devient très subjectif, en fonction de tes exigences,
de la taille de ton site....

- si la qualité de ton hébergement laisse à désirer, tu auras
intérêt à ne pas créer de pages (squelettes) trop complexes, i.e.
qui demandent à SPIP d'afficher trop d'informations différentes.
Cela ne vaut pas que pour les mots-clés, mais aussi les rubriques,
etc. : tout ce qui, dans les squelettes, est susceptible d'être
transformé par SPIP en données affichables.

- la qualité des performances devient objectivement mesurable
si, lors du recalcul d'une page du site, tu obtiens un "timeout"
c'est-à-dire que le serveur a dépassé le temps maximal d'exécution
d'un programme PHP. Alors cela indique que la qualité de
l'hébergement est franchement mauvaise (par exemple Free), et qu'il
faut que tu crées des pages plus simples. Heureusement, c'est tout
de même très rare.

Quoiqu'il en soit, personnellement, si ton hébergeur n'est pas
un gratuit ou un mauvais hébergeur payant, je pense que tu n'as
pas trop à t'inquiéter pour les performances. Sauf, bien sûr,
si la masse d'informations à traiter est vraiment considérable
(plusieurs dizaines de milliers de mots-clés...).

a+

Antoine.

Salut,

Je profite du message de Maurice pour faire un ch'tit topo sur la rapidité...

-> Le principe général du site public est d'être intégralement en cache, c'est-à-dire qu'un premier visiteur provoque le calcul d'une page, les suivants (dans un intervalle de temps que le webmestre a fixé lui-même) récupérant un fichier déjà tout calculé.

De fait, à part le premier visiteur, il n'y a plus aucun calcul de la part de SPIP, d'où une très grande vitesse. Le temps d'accès à la page étant celui, tout bêtement, d'une page HTML classique (chargement du texte et des images).

Ainsi, quelle que soit la complexité d'une page (multiples mots-clés, longue liste d'articles, etc.), la "vitesse de SPIP" n'est plus en jeu.

-> La difficulté principe viendra donc du "recalcul" de la page, c'est-à-dire la visite d'une page qui n'est pas encore en cache. C'est là qu'intervient du "gros" calcul de la part de SPIP, qui consiste en 5 actions:
(1) analyse du squelette,
(2) interrogations de la base de donnée pour récupérer les informations nécessaires,
(3) calculs sur ces données, notamment pour le traitement typographique, et insertion de ces résultats (du texte) dans le squelette,
(4) sauvegarde du fichier de cache,
(5) récupération de ce fichier cache et envoi au client.

La partie (1) d'analyse du squelette était relativement lourde dans les toutes premières versions (que la plupart d'entre vous n'ont pas connues); Antoine a entièrement reprogrammé cette partie, et désormais, quelle que soit la complexité du squelette, la phase d'analyse est très très rapide. C'est quasiment imperceptible. Notez que c'est dans cette phase que sont détectées les erreurs de construction des squelettes (tag boucle fermant manquant, etc.).

La partie (2) est, à priori, rapide, mais cela dépend énormément de la charge du serveur. De fait, s'il y a beaucoup d'éléments à récupérer depuis la base de données, ce temps peut être perceptible. Là, Antoine a commencé à optimiser, pour limiter le nombre de requêtes inutiles (récupérer des données qui ne seront pas utilisées dans la page). Il semble que récupérer des informations "lourdes" (textes longs notamment) prend du temps au niveau de la gestion de la mémoire du serveur (Antoine, tu m'arrêtes si je dis des bêtises). Si j'ai bien compris, cette optimisation est en cours, et encore incomplète.

La partie (3), entièrement en PHP (il n'y a plus d'interrogations de la base de données) est _très_ lourde. Notamment, sur les textes très longs, l'analyse typographique est très perceptible (jusqu'à plusieurs secondes). Un gros travail d'optimisation a déjà été réalisé sur cette partie, mais on n'échappe pas à l'utilisation, assez lourde, d'expression régulières, et cela est très long.

Les parties (4) et (5) sont quasi immédiates, totalement imperceptibles.

C'est donc sur les parties (2) et (3) que nous concentrons l'optimisation désormais. Notez qu'en quelques semaines, nous avons largement divisé les temps de calcul. Au début, certaines pages pouvaient prendre plus de 30 secondes de calcul, désormais il est rare de dépasser 5 secondes.

-> Le cas de Free...

Les machines de Free sont très lentes. Elles sont rapides pour "servir" du HTML sans calculs, d'où l'impression générale que Free est rapide. Mais dès qu'il y a des calculs PHP et des requêtes mySQL, les performances sont lamentables.

De plus, Free a fixé un délais maximum pour l'exécution des scripts de 5 secondes, ce qui est très peu (généralement, les hébergeurs laissent une durée de 30 secondes). Du coup, exécution lente des fonctions de SPIP, et sur certains textes très longs, on se retrouve à dépasser cette limite de 5 seconds. On obtient alors un message d'erreur, la page n'est pas calculée, et donc même pas sauvegardée en cache...

C'est dommage qu'au delà de 50 mots clefs il n'y ait pas à la fois la liste déroulante ET le moteur de recherche.
ou qu'il n'y ait pas un sélection double :
première liste> choix famille mots clefs deuxième liste> choix mots clefs dans la famille choisie troisième>moteur recherche

Le problème est double: à la fois un problème d'interface, et un problème de temps de chargement.

-> Interface

L'interface est une préoccupation centrale dans le développement de SPIP. Elle doit être _limpide_. L'utilisateur ne doit pas se demander pourquoi ni comment, il doit pouvoir se contenter de cliquer là où il faut cliquer pour obtenir le résultat désiré. Bien entendu, c'est toujours perfectible, mais c'est toujours l'optique dans lequelle le bidule est conçu.

De fait, il faut éviter les redondances d'interface, qui induisent un doute, parce que l'utilisateur se demandera toujours s'il doit utiliser l'un ou l'autre, et si ça fait la même chose. Donc menu déroulant unique (et non deux ou plus menus), donc on n'affiche pas à la fois le moteur et le menu déroulant.

Bien sûr, la présence des deux ferait gagner du temps aux utilisateurs aguerris, mais provoquerait une grande perplexité chez les autres... Pour te dire, il a fallu affronter des questions du genre "il y a une case pour le surtitre, mais je n'utilise pas de surtitre, est-ce que ça va poser un problème?"; questions qui n'ont rien d'illégitime.

-> Les temps de chargement

Le moteur de recherche remplace le menu déroulant quand il y a trop d'éléments. Ca n'est pas une question d'interface, c'est un problème de vitesse de téléchargement: le menu déroulant, quand il pèse 50ko, ralentit énormément le chargement de la page de l'article, alors même qu'il n'est pas utilisé à chaque fois. On avait notamment le problème avec le menu déroulant des auteurs dans uZine, très lourd à charger.

Amicalement,
ARNO*

--
Le Scarabée : http://www.scarabee.com
uZine 2 : http://www.minirezo.net

DH/DSS, 0x11930F0B, DEEB 602D B344 644B AF88 BF73 85F4 2297 1193 0F0B

Merci à ARNO pour ses explications très claires sur le fonctionnement de
spip.

Suggestion sur ergonomie formulaire recherche:
je pense que l'utilisateur final peut ne pas comprendre l'usage de la
recherche dans la mesure ou il n'y a pas de bouton symbolisant l'action de
rechercher : ok ou rechercher ou lancer la recherche
Je pense qu'il sera bien d'inclure dans #FORMULAIRE_RECHERCHE la présence de
ce bouton avec en paramètre le ok ou rechercher ou autre.

Maurice

Bonjour,

J'envisage de faire passer le site de Migrants contre le sida (www.survivreausida.org) sous SPIP.

L'admin qui s'occupe du serveur me dit que notre serveur n'a pas la puissance pour SPIP. Quelqu'un peut-il me le confirmer:

Le serveur qui héberge nos pages est un antique: un sparc/2 à 20Mhz ou qq chose comme ça.

J'en ai discuté avec l'admin, il pense que la base MySQL et les autres trucs sont beaucoup trop lourds pour notre serveur.

Actuellement nous avons 5000 visiteurs et 50 000 pages consultées par mois.

En vous remerciant,

Reda Sadki
MCS
--
http://www.survivreausida.org/
Migrants contre le sida: égalité des droits face à la maladie.
Emission de radio tous les mardis de 17 à 18 heures sur FPP 106,3 FM.
Répondeur téléphonique au 01 43 79 88 32 (rappel sous 24h).

Migrants contre le sida wrote:

Le serveur qui héberge nos pages est un antique: un sparc/2 à 20Mhz ou qq chose comme ça.

Effectivement, la machine risque d'être sur les genoux.

Il faudrait une machine plutôt récente, disons grosso modo et
sans trop m'engager :

- un processeur à minimum 200 MHz
- minimum 128 Mo de mémoire (important)

Ce n'est pas tant lié au nombre de visiteurs qu'au fait que
le recalcul des pages, quand il est effectué, nécessite un
minimum de puissance (cf. la discussion actuelle sur la
rapidité - le message d'Arno notamment).

Note, SPIP n'est pas obligé d'être le seul site sur la machine :
vous pouvez mutualiser les ressources techniques, surtout que
ton site n'a pas énormément de visites (50000 pages par mois,
ça représente à peine plus d'une page par minute : la plupart
du temps le serveur n'est pas sollicité, c'est quand il est
l'est que la puissance entre en jeu).

a+

Antoine.