remarque d'ouvaton sur spip

Je pense que que ce message initialement posté sur la liste t.aide d'ouvaton sera utile icimérite reflexion en ce qui concerne cron et jquery

Vincent François wrote:

Bonjour

Bonjour,

Bref, je note surtout que ce qui coûte le plus de temps, c'est :
- http://quebeckyoto.org/ 2259ms
- http://quebeckyoto.org/spip.php?page=jquery.js 373ms
- http://quebeckyoto.org/spip.php?action=cron 901ms
sur 3974ms

Ce qui signifie que pour une page vue, votre spip génère trois requetes coté serveur
(une pour la page, une pour jquery et une pour la saleté de cron)

Dans quelle mesure avons-nous besoin du cron? De cet appel jquery? Y a-t-il un moyen de les contourner?

Le cron spip l'utilise pour certains truc genre l'indexation, ou les mises à jours de cache, je sais plus trop. Ca sert en gros à executer une tache un peu lourde de temps en temps.

Pour ce qui est de jquery c'est carrement débile car si vous aviez le fichier static correspondant jquery.js vous gagneriez 1/3 du temps de chargement de la page. Avoir un fichier dynamique le dessus est une erreur de conception.

Le temps passé du cron nuit-il à la charge de l'hébergeur? Nuit-il à l'affichage ou, se produisant à la fin, s'exécute-t-il une fois le reste chargé et affiché par le navigateur?

Il nuit à l'hébergeur dans le sens ou à chaque page chargé ca charge une deuxième page, ce qui double la charge pour l'hébergeur par rapport à chaque page vue. Ca ralenti l'affichage pour vos coopérateurs uniquement si l'appel à cette page se situe au début du code html, sinon ca ralenti juste le démarrage des javascripts.

Bref, cette décomposition peut-elle aider à comprendre les problèmes du mariage SPIP-Ouvaton ou sont-ce des choses bien connues que je découvre seulement maintenant de mon côté?

Je ne sais pas si jquery est de base dans tous les spips, ca m'étonnerait ca doit faire partie de vos squelettes. Quand au cron c'est une sale habitude qui traine dans spip depuis un moment et qui consiste à émuler des taches fondamentalement non web (= execution de tache une fois de temps en temps) au prix d'une surcharge pour l'hébergeur.
Si j'étais le concepteur de l'appli pour une optique performance je me débarasserai vite fait du cron.php quitte à utiliser des trucs genre http://www.webcron.org/ (ou pas si ca ne vous sert à rien).

Concernant jquery.js je le remplacerais vite fait par un fichier static tout simple au lieu de perde un temps monstrueux à passer par spip pour l'obtenir.

Il a pas tort pour jQuery, par contre, pour l'exemple précis cité, ca peut
être aussi l'hébergeur qui pédale gravement dans la choucroute...

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de
Gilles Quiniou
Envoyé : samedi 16 février 2008 12:43
À : spip@rezo.net
Objet : [Spip] remarque d'ouvaton sur spip

Je pense que que ce message initialement posté sur la liste t.aide
d'ouvaton sera utile icimérite reflexion en ce qui concerne cron et jquery

Vincent François wrote:

Bonjour

Bonjour,

Bref, je note surtout que ce qui coûte le plus de temps, c'est :
- http://quebeckyoto.org/ 2259ms
- http://quebeckyoto.org/spip.php?page=jquery.js 373ms
- http://quebeckyoto.org/spip.php?action=cron 901ms
sur 3974ms

Ce qui signifie que pour une page vue, votre spip génère trois requetes

coté serveur

(une pour la page, une pour jquery et une pour la saleté de cron)

Dans quelle mesure avons-nous besoin du cron? De cet appel jquery? Y

a-t-il un moyen de les contourner?

Le cron spip l'utilise pour certains truc genre l'indexation, ou les mises

à jours de cache, je sais plus trop. Ca sert en gros à executer une tache un
peu lourde de temps en temps.

Pour ce qui est de jquery c'est carrement débile car si vous aviez le

fichier static correspondant jquery.js vous gagneriez 1/3 du temps de
chargement de la page. Avoir un fichier dynamique le dessus est une erreur
de conception.

Le temps passé du cron nuit-il à la charge de l'hébergeur? Nuit-il à

l'affichage ou, se produisant à la fin, s'exécute-t-il une fois le reste
chargé et affiché par le navigateur?

Il nuit à l'hébergeur dans le sens ou à chaque page chargé ca charge une

deuxième page, ce qui double la charge pour l'hébergeur par rapport à chaque
page vue. Ca ralenti l'affichage pour vos coopérateurs uniquement si l'appel
à cette page se situe au début du code html, sinon ca ralenti juste le
démarrage des javascripts.

Bref, cette décomposition peut-elle aider à comprendre les problèmes du

mariage SPIP-Ouvaton ou sont-ce des choses bien connues que je découvre
seulement maintenant de mon côté?

Je ne sais pas si jquery est de base dans tous les spips, ca m'étonnerait

ca doit faire partie de vos squelettes. Quand au cron c'est une sale
habitude qui traine dans spip depuis un moment et qui consiste à émuler des
taches fondamentalement non web (= execution de tache une fois de temps en
temps) au prix d'une surcharge pour l'hébergeur.

Si j'étais le concepteur de l'appli pour une optique performance je me

débarasserai vite fait du cron.php quitte à utiliser des trucs genre
http://www.webcron.org/ (ou pas si ca ne vous sert à rien).

Concernant jquery.js je le remplacerais vite fait par un fichier static

tout simple au lieu de perde un temps monstrueux à passer par spip pour
l'obtenir.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP

Samy RABIH a écrit :

Il a pas tort pour jQuery, par contre, pour l'exemple précis cité, ca peut
être aussi l'hébergeur qui pédale gravement dans la choucroute...

Oui, sauf que la page spip.php?jquery.js inclue la librairie compressée ainsi que certains plugins jquery compresses aussi.

Par ailleurs, elle possède le paramètre : #CACHE{7*24*3600,cache-client}
qui dit donc de ne pas réappeler la page si on l'a chargé une premère fois, comme si on appelait dirrectement un fichier .js, en plus d'avoir un cache d'une semaine, donc les recalculs sont rares.

MM.

Gilles Quiniou a écrit :

Dans quelle mesure avons-nous besoin du cron? De cet appel jquery? Y a-t-il un moyen de les contourner?

Le cron spip l'utilise pour certains truc genre l'indexation, ou les mises à jours de cache, je sais plus trop. Ca sert en gros à executer une tache un peu lourde de temps en temps.

le cron est fait pour que les traitement asynchrones soient fait de facon asynchrone => ne ralentissent pas l'affichage de la page

Pour ce qui est de jquery c'est carrement débile car si vous aviez le fichier static correspondant jquery.js vous gagneriez 1/3 du temps de chargement de la page. Avoir un fichier dynamique le dessus est une erreur de conception.

ce qui est carrement debile, c'est de raconter des conneries pareilles sans savoir ce que l'on dit.
1- le systeme de cache joue pleinement son role et le serveur n'est réellement sollicité que très rarement (calcul 1 fois par semaine, chargement effectif une fois par semaine et par utilisateur)

2- ca permet au contraire d'eviter beaucoup de hits sur le serveur puisqu'on construit un fichier unique et compressé au lieu d'en appeler 4 non compressés (ce qu'on conserverait pour des questions de maintenabilité)

Le temps passé du cron nuit-il à la charge de l'hébergeur? Nuit-il à l'affichage ou, se produisant à la fin, s'exécute-t-il une fois le reste chargé et affiché par le navigateur?

Il nuit à l'hébergeur dans le sens ou à chaque page chargé ca charge une deuxième page,

Et on aurait mis les traitement directement dans le hit principal, ca changerait quoi pour le serveur ?
RIEN !
Par contre l'utilisateur attendrait la fin de l'indexation pour voir sa page... genial !

ce qui double la charge pour l'hébergeur par rapport à chaque page vue. Ca ralenti l'affichage pour vos coopérateurs uniquement si l'appel à cette page se situe au début du code html, sinon ca ralenti juste le démarrage des javascripts.

c'est un appel en image de fond, ca ne ralentira rien du tout.

Qui raconte ce genre de connerie ?

Faudrait peut etre lui conseiller de se renseigner un peu avant de l'ouvrir...

@++

Matthieu Marcillaud a écrit :

Samy RABIH a écrit :

Il a pas tort pour jQuery, par contre, pour l'exemple précis cité, ca peut
être aussi l'hébergeur qui pédale gravement dans la choucroute...

Oui, sauf que la page spip.php?jquery.js inclue la librairie compressée ainsi que certains plugins jquery compresses aussi.

Par ailleurs, elle possède le paramètre : #CACHE{7*24*3600,cache-client}
qui dit donc de ne pas réappeler la page si on l'a chargé une premère fois, comme si on appelait dirrectement un fichier .js, en plus d'avoir un cache d'une semaine, donc les recalculs sont rares.

il y a quand même au moins un petit surcout puisqu'on appelle php même si
c'est pour pas faire grand chose :
peut on assurer que ce surcout est vraiment négligeable ?

à part ça, j'ai l'impression que l'admin ouvaton ne s'est pas vraiment
intéressé à spip ... ou alors qu'il est de mauvaise foi...

mais peut on aussi assurer que la gestion cron intégrée à spip
est aussi efficace qu'un cron indépendant ?
ou bien, quand l'admin est capable de faire la modif,
est il préférable de faire appel à un cron indépendant ?

JLuc

Le CRON externe ne répond pas à tous les besoins, et puis certains serveurs
ne peuvent pas sortir sur l'extérieur.

Plus généralement, SPIP reste un peu consommateur donc sur des mutualisés,
ca peut pas mal solliciter, mais les fermes à SPIP prouvent que c'est
faisable :slight_smile:

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de JLuc
Envoyé : samedi 16 février 2008 15:20
À : spip@rezo.net
Objet : Re: [Spip] remarque d'ouvaton sur spip

Matthieu Marcillaud a écrit :

Samy RABIH a écrit :

Il a pas tort pour jQuery, par contre, pour l'exemple précis cité, ca

peut

être aussi l'hébergeur qui pédale gravement dans la choucroute...

Oui, sauf que la page spip.php?jquery.js inclue la librairie compressée
ainsi que certains plugins jquery compresses aussi.

Par ailleurs, elle possède le paramètre : #CACHE{7*24*3600,cache-client}
qui dit donc de ne pas réappeler la page si on l'a chargé une premère
fois, comme si on appelait dirrectement un fichier .js, en plus d'avoir
un cache d'une semaine, donc les recalculs sont rares.

il y a quand même au moins un petit surcout puisqu'on appelle php même si
c'est pour pas faire grand chose :
peut on assurer que ce surcout est vraiment négligeable ?

à part ça, j'ai l'impression que l'admin ouvaton ne s'est pas vraiment
intéressé à spip ... ou alors qu'il est de mauvaise foi...

mais peut on aussi assurer que la gestion cron intégrée à spip
est aussi efficace qu'un cron indépendant ?
ou bien, quand l'admin est capable de faire la modif,
est il préférable de faire appel à un cron indépendant ?

JLuc

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP

On 16 fév, 15:07, Stephane <steph...@rezo.net> wrote:

Gilles Quiniou a écrit :

>>> Dans quelle mesure avons-nous besoin du cron? De cet appel jquery? Y a-t-il un moyen de les contourner?
>> Le cronspipl'utilise pour certains truc genre l'indexation, ou les mises à jours de cache, je sais plus trop. Ca sert en gros à executer une tache un peu lourde de temps en temps.

le cron est fait pour que les traitement asynchrones soient fait de
facon asynchrone => ne ralentissent pas l'affichage de la page

Tout fichier inclus dans une page particulièrement en tête de html,
ralenti le chargement d'une page. S'il est placé en fin de code comme
le font les outils de stats classiques ne ralentisse pas l'affichage
de la page mais au moins l'envenemement 'onload'

Je vous invite à lire la série des articles de yahoo à ce sujet:
http://yuiblog.com/blog/2006/11/28/performance-research-part-1/

En l'occurrence la question n'est pas est-ce que ca ralenti la page
par rapport au fait que ce soit calculé au cours de la page ou dans
une deuxième requête à la page mais est-ce que ca ralenti la page tout
court. La réponse est oui, comme n'importe quelle requête http, sauf
que celle ci est de surcroit dynamique donc plus lente.

>> Pour ce qui est de jquery c'est carrement débile car si vous aviez le fichier static correspondant jquery.js vous gagneriez 1/3 du temps de chargement de la page. Avoir un fichier dynamique le dessus est une erreur de conception.

ce qui est carrement debile, c'est de raconter des conneries pareilles
sans savoir ce que l'on dit.
1- le systeme de cache joue pleinement son role et le serveur n'est
réellement sollicité que très rarement (calcul 1 fois par semaine,
chargement effectif une fois par semaine et par utilisateur)

2- ca permet au contraire d'eviter beaucoup de hits sur le serveur
puisqu'on construit un fichier unique et compressé au lieu d'en appeler
4 non compressés (ce qu'on conserverait pour des questions de
maintenabilité)

Je suis navré de voir votre manque de compétence en terme
d'optimisation d'architecture. Comparer un fichier static à un cache
dynamique en terme de performance c'est comme comparer la course à
pied à la course à vélo. Aussi bon que soit l'athlète il n'arrivera
jamais à la cheville du cycliste du dimanche.

Il est impossible de faire plus performant qu'un fichier static en
terme de temps de réponse, celui est optimisable de millier de facon
(cache via etag, reverse proxy, gzip de base...).

Chez l'hébergeur lambda vous n'aurez ni cache navigateur, ni gzip et
les temps de réponse php seront incomparablement plus lent.

Sans compter que dans le cas spécifique de spip, ca va demander
beaucoup d'appel fichier (chargement des libs spip, puis recherge du
cache, dzipage du cache ...). Bref une usine à gaz pour un fichier qui
ne change jamais.

Rien ne vous empêche de livrer dans la release spip une version
compressée et d'avoir dans svn la version en clair qui sera compressé
lors du packaging, ou même de livrer les 2.

>>> Le temps passé du cron nuit-il à la charge de l'hébergeur? Nuit-il à l'affichage ou, se produisant à la fin, s'exécute-t-il une fois le reste chargé et affiché par le navigateur?
>> Il nuit à l'hébergeur dans le sens ou à chaque page chargé ca charge une deuxième page,

Et on aurait mis les traitement directement dans le hit principal, ca
changerait quoi pour le serveur ?

2 fois moins de hit dynamique, 2 fois moins de chargement des
librairies spip nécessaire à cette tache. Et si sur la machine du
dev@localhost ca ne change rien, chez l'hébergeur qui héberge des
milliers de spip, ca se voit.

RIEN !
Par contre l'utilisateur attendrait la fin de l'indexation pour voir sa
page... genial !

La question de fond, est que vient donc faire l'indexation chez
l'utilisateur du site web. Ca n'est pas sa place, l'indexation est un
problème coté serveur, à traiter coté serveur par l'administrateur. La
présence de ce mode de fonctionnement est un workaround pour faciliter
la vie de l'installateur lambda d'un spip. C'est louable mais c'est
une pustule d'un point de vue architecture et scalabilité, qui
gagnerait à être externalisé dans un cron particulièrement sur des
spips avec bcp de visiteur.

D'ailleurs il est probable que la présence de ce cron.php uniquement
dans la partie admin serait nettement suffisant mais je ne connais pas
suffisament ce que signifie l'indexation dans spip pour pouvoir en
discuter en connaissance de cause.

> ce qui double la charge pour l'hébergeur par rapport à chaque page vue. Ca ralenti l'affichage pour vos coopérateurs uniquement si l'appel à cette page se situe au début du code html, sinon ca ralenti juste le démarrage des javascripts.

c'est un appel en image de fond, ca ne ralentira rien du tout.

Qui raconte ce genre de connerie ?

Faudrait peut etre lui conseiller de se renseigner un peu avant de
l'ouvrir...

Malheureusement sans vouloir rentrer dans le jeu de la flame war entre
nous deux vous êtes celui qui connait le mieux de spip ca ne fait
aucun doute mais également celui comprend le moins les réalités du
développement web et des contraintes d'architecture ou de scalabilité.

On 16 fév, 12:42, Gilles Quiniou <gil...@quiniou.org> wrote:

Je pense que que ce message initialement posté sur la liste t.aide
d'ouvaton sera utile icimérite reflexion en ce qui concerne cron et jquery

> Vincent François wrote:

>> Bonjour

> Bonjour,

>> Bref, je note surtout que ce qui coûte le plus de temps, c'est :
>> -http://quebeckyoto.org/ 2259ms
>> -http://quebeckyoto.org/spip.php?page=jquery.js 373ms
>> -http://quebeckyoto.org/spip.php?action=cron 901ms
>> sur 3974ms

Première question: qu'est-ce que ça donne *en moyenne*, sur *une
centaine* d'appels ? Sinon, ça n'a aucune signification.

> Ce qui signifie que pour une page vue, votre spip génère trois requetes coté serveur
> (une pour la page, une pour jquery et une pour la saleté de cron)

Il est relativement normal qu'une page html génère plusieur requêtes.
Pour être plus précis: toute ressource "extérieure" à la page (fichier
css, fichier js, image etc) génère une requête HTTP. Avec tout
l'overhead qui va bien (résolution du nom de domaine, calcul des
caches etc).

>> Dans quelle mesure avons-nous besoin du cron? De cet appel jquery? Y a-t-il un moyen de les contourner?

> Le cron spip l'utilise pour certains truc genre l'indexation, ou les mises à jours de cache, je sais plus trop.

No comment.

Ca sert en gros à executer une tache un peu lourde de temps en temps.

Le but étant de fournir un mécanisme alternatif pour ceux (et ils sont
nombreux) qui ne peuvent ou ne savent mettre en place un vrai cron sur
leur hébergement.

> Pour ce qui est de jquery c'est carrement débile car si vous aviez le fichier static correspondant jquery.js vous gagneriez 1/3 du temps de chargement de la page.

Chapitre et verset ? Mes propres essais à ce propos sont loin
d'indiquer une telle différence sur le temps *de téléchargement* (les
ressources consommées pour servir la page étant un autre problème).

Accessoirement, vu le cache très agressif de ce fichier, même avec le
fonctionnement par défaut on a quelque chose de très raisonnable.

Avoir un fichier dynamique le dessus est une erreur de conception.

En l'état des choses, plus ou moins, car rien ne justifie
l'utilisation d'un squelette ici puisqu'il n'y a aucune substitution
de variable ou autre dans ce squelette. D'un autre côté, avec un cache
d'une semaine côté client, on est normalement (et c'est ce que j'ai
personnellement vérifié) très loin du cas d'un recalcul et
rechargement complet à chaque requête.

Dans le principe, l'utilisation d'un squelette pour du code
javascript (ou css) n'est pas en soi différente de l'utilisation d'un
squelette pour du (x)html. Bref: c'est justifié s'il y a besoin de
construire dynamiquement le code.

>> Le temps passé du cron nuit-il à la charge de l'hébergeur? Nuit-il à l'affichage ou, se produisant à la fin, s'exécute-t-il une fois le reste chargé et affiché par le navigateur?

> Il nuit à l'hébergeur dans le sens ou à chaque page chargé ca charge une deuxième page, ce qui double la charge pour l'hébergeur par rapport à chaque page vue. Ca ralenti l'affichage pour vos coopérateurs uniquement si l'appel à cette page se situe au début du code html, sinon ca ralenti juste le démarrage des javascripts.

Pour ce qui est des multiples reqêtes HTTP nécessaires à l'affichage
d'une page (sauf cas d'une page ne faisant appel à aucune autre
ressource, ce qui est un cas assez rare...), c'est le fonctionnement
normal du protocole HTTP. Pour ce qui est de la balise #CRON, elle
renvoie de fait une image extrêmement légère (pratiquement parlant,
totalement insensible pour le client et le serveur), et dans la
plupart des cas (selon rapport fréquentation du site/nombre de mises à
jour du contenu) n'entraine que très peu de traitement côté serveur.
Comparé aux solutions mises en place par la plupart des CMS php pour
gérer le même type de problème, c'est vraiment loin (très loin) d'être
ce qu'on peut faire de pire.

Là aussi, ayant mis le nez dans le code et expérimenté diverses
configurations et solutions, je peux affirmer que sauf cas
pathologique la solution est plutôt dans la bonne moyenne.

>> Bref, cette décomposition peut-elle aider à comprendre les problèmes du mariage SPIP-Ouvaton ou sont-ce des choses bien connues que je découvre seulement maintenant de mon côté?

> Je ne sais pas si jquery est de base dans tous les spips, ca m'étonnerait ca doit faire partie de vos squelettes.

C'est "de base" dans le squelette par défaut (via la balise
INSERT_HEAD), et donc dans la plupart des squelettes aussi.
Accessoirement, cette balise sert aussi à tous les plugins ayant
besoin d'insérer des appels à des ressources externes (js, css etc)
dans le head.

Quand au cron c'est une sale habitude qui traine dans spip depuis un moment et qui consiste à émuler des taches fondamentalement non web (= execution de tache une fois de temps en temps) au prix d'une surcharge pour l'hébergeur.

*Quelle* surcharge pour l'hébergeur ? Que ces tâches soient effectuées
suite à une requête HTTP ou qu'elles soient appelées via un vrai cron
ne change *rien* à la charge pour le serveur.

> Si j'étais le concepteur de l'appli pour une optique performance je me débarasserai vite fait du cron.php quitte à utiliser des trucs genrehttp://www.webcron.org/(ou pas si ca ne vous sert à rien).

Si j'étais l'auteur de ce commentaire, je commencerais par lire le
code avant de dire des conneries.

> Concernant jquery.js je le remplacerais vite fait par un fichier static tout simple au lieu de perde un temps monstrueux à passer par spip pour l'obtenir.

Idem.

Je ne sais pas qui est Vincent François, mais sa méconnaissance du
domaine semble assez abyssale.

Pas pour dire que spip est parfait. Effectivement, la page
"jquery.js.html" est à mon humble avis (basé sur une connaissance du
code et des essais sérieux avec diverses solutions alternatives) une
connerie dans le sens où un fichier .js contenant l'ensemble et packé
avec YUI est beaucoup plus efficace (mais plus ch... à maintenir). Et
bien sûr, un vrai cron est _un poil_ moins coûteux - surtout pour un
site peu fréquenté et souvent mis à jour, d'ailleurs.

Dans la pratique, sur la moyenne des sites spip que j'ai vu, les vrais
problèmes étaient ailleurs - et notamment dans une mauvaise
utilisation des boucles. Mais on touche là à un problème difficile à
résoudre si on veut conserver à spip son principal atout, qui est
d'être facilement utilisable par des non-informaticiens et facilement
hébergeable pour des non-professionnels.

On 16 fév, 15:23, "Samy RABIH" <samy.ra...@free.fr> wrote:

Le CRON externe ne répond pas à tous les besoins, et puis certains serveurs
ne peuvent pas sortir sur l'extérieur.

Plus généralement, SPIP reste un peu consommateur donc sur des mutualisés,
ca peut pas mal solliciter, mais les fermes à SPIP prouvent que c'est
faisable :slight_smile:

-----Message d'origine-----
De : spip-boun...@rezo.net [mailto:spip-boun…@rezo.net] De la part de JLuc
Envoyé : samedi 16 février 2008 15:20
À : s...@rezo.net
Objet : Re: [Spip] remarque d'ouvaton sur spip

Matthieu Marcillaud a écrit :

> Samy RABIH a écrit :
>> Il a pas tort pour jQuery, par contre, pour l'exemple précis cité, ca
peut
>> être aussi l'hébergeur qui pédale gravement dans la choucroute...

> Oui, sauf que la page spip.php?jquery.js inclue la librairie compressée
> ainsi que certains plugins jquery compresses aussi.

> Par ailleurs, elle possède le paramètre : #CACHE{7*24*3600,cache-client}
> qui dit donc de ne pas réappeler la page si on l'a chargé une premère
> fois, comme si on appelait dirrectement un fichier .js, en plus d'avoir
> un cache d'une semaine, donc les recalculs sont rares.

il y a quand même au moins un petit surcout puisqu'on appelle php même si
c'est pour pas faire grand chose :
peut on assurer que ce surcout est vraiment négligeable ?

Il ne l'est pas totalement - quand php est *effectivement* appelé,
c'est à dire théoriquement une fois par semaine par navigateur.

à part ça, j'ai l'impression que l'admin ouvaton ne s'est pas vraiment
intéressé à spip ... ou alors qu'il est de mauvaise foi...

ou simplement incompétent, ce qui est hélas assez courant.

mais peut on aussi assurer que la gestion cron intégrée à spip
est aussi efficace qu'un cron indépendant ?

Non, bien sûr. Mais:

ou bien, quand l'admin est capable de faire la modif,
est il préférable de faire appel à un cron indépendant ?

Le problème n'est pas seulement d'être capable de mettre en place des
jobs cron, mais aussi que l'hébergeur le permette (ce qui, si mon
souvenir est bon, n'est pas le cas chez ouvaton, ni chez la plupart
des hébergements grand-public). Entre ça et les solutions utilisées
par certains CMS (qui consistent généralement à faire le travail
systématiquement à chaque appel de page...), la solution de spip est
un moindre mal.

JLuc

_______________________________________________
liste spip
s...@rezo.net - désabonnement : spip-...@rezo.net
Infos et archives :http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP :http://www.spip.net/
irc://irc.freenode.net/spip
FAQ :FAQ webmestre - SPIP

_______________________________________________
liste spip
s...@rezo.net - désabonnement : spip-...@rezo.net
Infos et archives :http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP :http://www.spip.net/
irc://irc.freenode.net/spip
FAQ :FAQ webmestre - SPIP

Le 17/02/2008 17:27, bruno desthuilliers a ecrit :

Je ne sais pas qui est Vincent François, mais sa méconnaissance du
domaine semble assez abyssale.

Hého, Bruno, faut pas se prendre les pieds dans les fleurs du tapis des citations.

Moi, je n'ai fait que poser les questions, pas fournir les réponses que tu critiques...

Ma méconnaissance est suffisamment grande pour poser des questions dont j'espère qu'elles pourront, si ce n'est faire avancer le schmilblick SPIP+Ouvaton, au moins m'aider à la réduire.

Mais je ne me permets pas de jouer le SPIP-buster ni de faire de l'Ouvation-bashing, deux activités que chacun semble pratiquer depuis le lancement de mes questions initiales sur les deux listes.

Alors merci de vérifier les sources avant de viser.

--
Vincent François
Consultation Boréale
vincent@consultation-boreale.com

Renaud (Nel) Morvan a écrit :

On 16 fév, 15:07, Stephane <steph...@rezo.net> wrote:

Gilles Quiniou a écrit :

Dans quelle mesure avons-nous besoin du cron? De cet appel jquery? Y a-t-il un moyen de les contourner?

Le cronspipl'utilise pour certains truc genre l'indexation, ou les mises à jours de cache, je sais plus trop. Ca sert en gros à executer une tache un peu lourde de temps en temps.

le cron est fait pour que les traitement asynchrones soient fait de
facon asynchrone => ne ralentissent pas l'affichage de la page

Tout fichier inclus dans une page particulièrement en tête de html,
ralenti le chargement d'une page. S'il est placé en fin de code comme
le font les outils de stats classiques ne ralentisse pas l'affichage
de la page mais au moins l'envenemement 'onload'

Je vous invite à lire la série des articles de yahoo à ce sujet:
YUI Library

Et moi je t'invite à TESTER avant de sortir des âneries.
#SPIP_CRON est appelé comme une image de fond généralement la dernière appelée.
L'*affichage* de la page n'est pas ralentit.

En l'occurrence la question n'est pas est-ce que ca ralenti la page
par rapport au fait que ce soit calculé au cours de la page ou dans
une deuxième requête à la page mais est-ce que ca ralenti la page tout
court.

La question est : est ce que l'utilisateur a l'impression que ca rame ou non, c'est la seule qui compte.

La réponse est oui, comme n'importe quelle requête http, sauf

que celle ci est de surcroit dynamique donc plus lente.

Donc, non, tout faux, pour nous, l'important, c'est l'utilisateur, d'ou ce choix d'"architecture".

Pour ce qui est de jquery c'est carrement débile car si vous aviez le fichier static correspondant jquery.js vous gagneriez 1/3 du temps de chargement de la page. Avoir un fichier dynamique le dessus est une erreur de conception.

ce qui est carrement debile, c'est de raconter des conneries pareilles
sans savoir ce que l'on dit.
1- le systeme de cache joue pleinement son role et le serveur n'est
réellement sollicité que très rarement (calcul 1 fois par semaine,
chargement effectif une fois par semaine et par utilisateur)

2- ca permet au contraire d'eviter beaucoup de hits sur le serveur
puisqu'on construit un fichier unique et compressé au lieu d'en appeler
4 non compressés (ce qu'on conserverait pour des questions de
maintenabilité)

Je suis navré de voir votre manque de compétence en terme
d'optimisation d'architecture.

c'est surement pour ca que je n'ai pas beaucoup de travail et que je suis mal payé alors...
:slight_smile:

Mais je suis pris d'un doute.
As tu au moins compris qu'il suffisait de copier dist/inc-head.html dans /squelettes et de le modifier pour faire autrement ?
Sais-tu au moins ce qu'est un squelette ?

  Comparer un fichier static à un cache

dynamique en terme de performance c'est comme comparer la course à
pied à la course à vélo. Aussi bon que soit l'athlète il n'arrivera
jamais à la cheville du cycliste du dimanche.

RE debilité !
il faut comparer ce qui est comparable.
ici, nous avons en source 4 fichiers javascripts non compressés, ce qui est un choix de *maintenabilité* et de *lisibilité*.
C'est donc à la lecture de ces *4 fichiers non compressés* qu'il faut comparer la méthode retenue :
Avantages :
- 4 fois moins de requetes HTTP
- sans doute 3 fois moins de bande passante utilisée

Idem :
- Le cache du navigateur jouant son role, le fichier n'est effectivement chargé qu'une fois par semaine

Inconvénient :
- 1 recalcul par semaine (compression des 4 fichier et ecriture d'un cache statique)
- traitement PHP avant de renvoyer le cache statique (gestion de cache de Spip), l'utilisation de FASTCACHE (plugin) permettant de revenir aux performances d'un fichier statique

Il est impossible de faire plus performant qu'un fichier static en
terme de temps de réponse, celui est optimisable de millier de facon
(cache via etag, reverse proxy, gzip de base...).

c'est bien.
Et tu fais des modifs dans les fichiers javascripts compréssés toi ?
Tu es trop fort !
Mais Spip, c'est fait pour etre utilisable aussi par les nuls comme moi... alors c'est mieux comme c'est la.

Chez l'hébergeur lambda vous n'aurez ni cache navigateur

???
quel rapport avec l'hebergeur ?
il faut se renseigner un peu sur Spip : il sait tres bien gerer les entetes HTTP...

, ni gzip

La compression de flux est intéressante pour gagner de la bande passante, mais ca ralentira l'affichage de la page pour des petites pages, c'est pour ca que ca a été écarté au profit de la compression du fichier avant mise en cache.

  et

les temps de réponse php seront incomparablement plus lent.

un eval PHP fait perdre du temps, donc meme l'accès à un cache statique (ce qui est le cas pour la page jquery) est plus lente effectivement.
C'est pour ca que Fil a mis au point FASTCACHE et Cedric Expresso.

Sans compter que dans le cas spécifique de spip, ca va demander
beaucoup d'appel fichier (chargement des libs spip, puis recherge du
cache, dzipage du cache ...). Bref une usine à gaz pour un fichier qui
ne change jamais.

si on parle de la /dist, en effet.
Mais l'avantage, c'est qu'il peut etre personnalisé (différent pour les utilisateurs authentifiés), ce qui ouvre beaucoup de possibilités.
Quand tu fais ca, tu vois bien l'interet du peiti traitement à chaque hit...

Rien ne vous empêche de livrer dans la release spip une version
compressée et d'avoir dans svn la version en clair qui sera compressé
lors du packaging, ou même de livrer les 2.

Rien ne t'empêche de développer un CMS, meme de forker Spip si tu penses vraiment pouvoir faire mieux.
Après, ce genre de discussion, on l'a sur la liste de développement, en étant courtois, et en partant du principe que les choix n'ont pas été fait au hasard.
Arriver en disant : vous etes nuls faut faire ca, c'est perdu d'avance et cela est vrai pour tout projet open source.

Le temps passé du cron nuit-il à la charge de l'hébergeur? Nuit-il à l'affichage ou, se produisant à la fin, s'exécute-t-il une fois le reste chargé et affiché par le navigateur?

Il nuit à l'hébergeur dans le sens ou à chaque page chargé ca charge une deuxième page,

Et on aurait mis les traitement directement dans le hit principal, ca
changerait quoi pour le serveur ?

2 fois moins de hit dynamique, 2 fois moins de chargement des
librairies spip nécessaire à cette tache. Et si sur la machine du
dev@localhost ca ne change rien, chez l'hébergeur qui héberge des
milliers de spip, ca se voit.

Sauf que ca donne la souplesse de déclencher le CRON uniquement dans les pages souhaitées, donc, par exemple, pas sur la page d'accueil.
Chacun peut faire ses reglages en fonction du trafic et de la quantité de taches de fond à traiter.

RIEN !
Par contre l'utilisateur attendrait la fin de l'indexation pour voir sa
page... genial !

La question de fond, est que vient donc faire l'indexation chez
l'utilisateur du site web. Ca n'est pas sa place, l'indexation est un
problème coté serveur, à traiter coté serveur par l'administrateur.

N'hesites surtout pas à nous expliquer comment tu fais une tache CRON chez Free ....
:slight_smile:
Et surtout pense à laisser tes coordonnées pour faire les formations utilisateurs.
Sur cette liste, pour 90% des utilisateur, CRON c'est un gros mot, alors dis toi que tu as du boulot....

Une des contraintes que se sont fixés les développeurs de Spip est de faire un outil accessible aux non informaticiens.
Ca passe avant l'optimisation...

Comment peux tu critiquer un outil sans savoir à quoi il sert ?

  La

présence de ce mode de fonctionnement est un workaround pour faciliter
la vie de l'installateur lambda d'un spip. C'est louable mais c'est
une pustule d'un point de vue architecture et scalabilité, qui
gagnerait à être externalisé dans un cron particulièrement sur des
spips avec bcp de visiteur.

Sauf qu'il suffit de supprimer l'appel à #SPIP_CRON et de mettre ce qu'on veut dans le "vrai" cron si on en a les compétences et la possibilité.
Mais celui qui ne sait meme pas ce qu'est un CRON peut quand meme utiliser Spip et l'installer en 5 clics chez Free.

D'ailleurs il est probable que la présence de ce cron.php uniquement
dans la partie admin serait nettement suffisant mais je ne connais pas
suffisament ce que signifie l'indexation dans spip pour pouvoir en
discuter en connaissance de cause.

Visiblement tu ne connais pas grand chose sur Spip.
Tu n'as sans doute meme pas pris la peine de lire un peu cette liste, sinon tu saurais que le problème principal et récurent des taches CRON, c'est que les sites avec tres peu de visite ont du mal à exécuter l'ensemble des taches.
Il n'y a pas que l'indexation d'ailleurs, il y a la syndication, l'envoi de mail, des optimisations de base et tout ce que l'utilisateur peut y ajouter (plugin)

ce qui double la charge pour l'hébergeur par rapport à chaque page vue. Ca ralenti l'affichage pour vos coopérateurs uniquement si l'appel à cette page se situe au début du code html, sinon ca ralenti juste le démarrage des javascripts.

c'est un appel en image de fond, ca ne ralentira rien du tout.

Qui raconte ce genre de connerie ?

Faudrait peut etre lui conseiller de se renseigner un peu avant de
l'ouvrir...

Malheureusement sans vouloir rentrer dans le jeu de la flame war entre
nous deux vous êtes celui qui connait le mieux de spip ca ne fait
aucun doute mais également celui comprend le moins les réalités du
développement web et des contraintes d'architecture ou de scalabilité.

Je suis consultant informatique, chef de projet et architecte J2EE et amené, dans ce cadre, à conseiller des grands groupes.
Jusqu'ici les clients chez qui j'interviens n'ont pas l'air de cet avis, mais il est probable qu'ils se trompent, tout comme tous ceux qui sont inscrits sur cette liste et utilisent bêtement Spip.
Ceci dit, si j'ai une contrainte forte de scalabilité, je déconseille tout simplement les langages interprétés...

Mais il faut savoir quand meme que Spip est utilisé par des grands groupes avec des grands nombres d'utilisateurs et que la scalabilité est un des arguments de ce choix (ou disons que Spip est le seul outil PHP qui n'est pas exclus d'office)

Mais on attend avec impatience ton "CMS qui marche mieux que Spip parce que Spip c'est nul".

Tant que tu y es, tu devrais aussi parler de programmation objet et appeler ton projet agora, tu verras, ca va faire un carton.
:slight_smile:

Bon, aller, j'arrete.

Mais la base avant de critiquer, c'est quand meme de se renseigner un minimum et de ne pas se croire plus intelligent que ceux qui ont fait le boulot.
Et au lieu de répondre des conneries, d'aller poser la question à ceux qui connaissent les réponses (spip-dev).
Je ne dis pas que Spip est parfait, ni que les choix d'architecture sont les meilleurs, mais ce sont des choix, il faut donc comprendre leurs motivations avant de les critiquer.

Maintenant SPIP est en GPL, tu as le droit de modifier ce qui ne te convient pas.
Avec le système de surcharge et de pipeline, tu peux meme le faire avec très peu d'effort.
Mais tu vas sans doute nous dire que tout cela est une hérésie architecturale (car si il faut travailler sur qqchose pour les perfs, c'est clairement du coté de find_in_path et des nombreux function_exists qu'il faut agir)

@++

il faut se renseigner un peu surSpip: il sait tres bien gerer les
entetes HTTP...

Bien tout est parfait, je vous invite donc à visiter http://spip.net
avec livehttpheader ou firebug et regarder la facon dont est géré le
cache navigateur sur l'appel de jquery. (indice: il n'y en a aucun, a
chaque appel c'est rappelé)

Par la même occasion vous ferez le ratio entre le temps de chargement
du html de la page et l'appel du javascript.

Ensuite vous pouvez revenir faire le malin et vous gargariser de vos
certitudes ou réflechir à la scalabilité de la chose coté server et au
confort utilisateur.

Je ne suis pas là pour juger spip, on m'a demandé mon avis sur des
choix d'implémentation au niveau performance et scalabilité. Et
globalement à ce niveau ce ne sont pas des bons choix
d'implémentation. Maintenant il y a sans doute plein de bonne raison
mais c'est une autre histoire.

Renaud (Nel) Morvan wrote:

Bien tout est parfait, je vous invite donc à visiter http://spip.net
avec livehttpheader ou firebug et regarder la facon dont est géré le
cache navigateur sur l'appel de jquery. (indice: il n'y en a aucun, a
chaque appel c'est rappelé)

euh...

1er appel :

GET /spip.php?page=jquery.js HTTP/1.0
Host: www.spip.net
HTTP/1.x 200 OK
Date: Mon, 18 Feb 2008 17:45:37 GMT
Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-15
X-Spip-Cache: 604800
Cache-Control: max-age=604800
X-Spip-Statique: oui
Last-Modified: Sat, 16 Feb 2008 14:49:08 GMT
Content-Encoding: gzip
Connection: close
Content-Type: text/javascript

puis je vais voir SPIP :

GET /squelettes/js/jquery.innerfade.js HTTP/1.0
Host: www.spip.net

pas d'autre appel à jquery.js

puis je relance SPIP :

toujours pas de réappel de jquery.js

que dois-je faire ?

denisb wrote:

que dois-je faire ?

à noter que j'ai dans le cache de mon navigateur un fichier nommé 7005C049d01 de 17624 octets qui une fois dé-gzippé me donne un fichier texte qui débute par :
/*
  * jQuery 1.2.1 - New Wave Javascript
  *
  * Copyright (c) 2007 John Resig (jquery.com)

et qui, lui pèse ses 56959 octets.

On 18 fév, 19:06, denisb <den...@laposte.net> wrote:

denisb wrote:
> que dois-je faire ?

à noter que j'ai dans le cache de mon navigateur un fichier nommé
7005C049d01 de 17624 octets qui une fois dé-gzippé me donne un fichier
texte qui débute par :

Avec wireshark/ethereal ca donne:

304 systématique sur ie5.5
304 systématique sur ie6
(pas de ie7 sous la main)
304 systematique sur firefox 2.x dernière version MAC ou windows
pas de requete sous safari 2 mac
pas de requete sous opera 9.4 mac

Sauf erreur l'overhead est donc présent à chaque fois sur ie et
firefox, le serveur se tape donc pour chaque visiteur sur chaque page
visité à charger 2 fois le core de spip. Le fichier n'est évidemment
pas téléchargé mais peu importe l'overhead coté serveur est dans la
requete http qui execute le php à chaque fois que ce soit une 200 ou
une 304, et coté utilisateur il se tape un hit qui bizarrement est
beaucoup plus lourd que celui de la page html source qui doit être
aggressivement cachée.

Visiblement tu ne connais pas grand chose sur Spip.
Tu n'as sans doute meme pas pris la peine de lire un peu cette liste,
sinon tu saurais que le problème principal et récurent des taches CRON,
c'est que les sites avec tres peu de visite ont du mal à exécuter
l'ensemble des taches.
Il n'y a pas que l'indexation d'ailleurs, il y a la syndication, l'envoi
de mail, des optimisations de base et tout ce que l'utilisateur peut y
ajouter (plugin)

Non je ne connais vraiment pas grand chose sur spip, et ca ne
m'empèche pas d'avoir un regard extérieur sur ce genre de détail
d'implémentation car il n'a rien à voir avec ce qui est fait en
arrière boutique.

Et non find_in_path n'est pas la première chose à optimiser, le bas
niveau est toujours la dernière couche à optimiser. Si déjà de base un
spip ne représentait pas 3 chargement du noyau à chaque page (et donc
3 fois des find_in_path de la mort j'imagine non ?), on gagnerait sans
doute quelques dizaines d'accès fichier par page, et c'est ca
l'élément limitant de l'hébergement moderne sur une appli programmé
correctement.

Juste une proposition basique qui me vient, plutôt que de balancer ce
cron.php toutes les pages, pourquoi ne pas avoir un cron à base de
javascript + ajax ? C'est à dire dans le header ou le corps html, 1
tag ou une variable contenant la prochaine date d'appel souhaité, et
dans la lib javascript chargé un mini script qui compare avec la date
courante et balance une requete ajax type cron.php si cette date est
dépassée (ca doit faire 3-5 lignes de js ce genre de script). C'est
lame mais pas plus que le cron.php, et surtout c'est moins lourd pour
le serveur, et un hit non négligeable gagné pour le visiteur, tout le
monde gagne.

Bref quoique vous puissiez dire, ce sont des choix d'implémentations
qui ont un impact non négligeable sur le ratio machine/visiteur
necessaire pour faire tourner spip puisqu'on démultiplie les appels de
fichier inutiles. Ca n'a aucun intéret sur spip@localhost c'est très
clair, mais dans une optique d'écologie numérique, de plaisir de
navigation ou de capacité à scaler efficacement c'est plutôt
intéressant. Bon j'arrête de vous ennuyez, nous sommes chez vous après
tout :slight_smile:

On 18 fév, 04:20, Vincent François <vinc...@consultation-boreale.com>
wrote:

Le 17/02/2008 17:27, bruno desthuilliers a ecrit :

> Je ne sais pas qui est Vincent François, mais sa méconnaissance du
> domaine semble assez abyssale.

Hého, Bruno, faut pas se prendre les pieds dans les fleurs du tapis des
citations.

oops ! Désolé, je croyais avoir nettoyé ça avant de poster (et après
avoir moi-même constaté ma méprise). Comme quoi on ne se relit jamais
assez :frowning:

Je te présente bien sûr et te prie d'accepter mes plus plates excuses
pour cette erreur manifeste et évidente.

Bonsoir,
ça vaudrait la peine de répercuter cet échange du côté de spip-dev,
notamment les remarques de Renaud,
tout à fait intéressantes.

a+
RB

Il semblerait que mon post précédent se soit perdu dans l'ether...
Bref, je recommence (tant que je l'ai encore un peu en mémoire), avec
mes excuses si finalement ça fait doublon

On 18 fév, 18:42, "Renaud (Nel) Morvan" <renaud.mor...@gmail.com>
wrote:

> il faut se renseigner un peu surSpip: il sait tres bien gerer les
> entetes HTTP...

Bien tout est parfait, je vous invite donc à visiterhttp://spip.net
avec livehttpheader ou firebug et regarder la facon dont est géré le
cache navigateur sur l'appel de jquery. (indice: il n'y en a aucun, a
chaque appel c'est rappelé)

Avec firebug, sur un spip-dist, avec une config Apache quasiment par
défaut, et après nettoyage du cache client:

1er appel : 971ms
Entêtes de réponse:
Date Mon, 18 Feb 2008 20:38:50 GMT
Server Apache
X-Powered-By PHP/5.1.6-pl8-gentoo
Vary Cookie,Accept-Encoding
Composed-By SPIP 1.9.2b @ www.spip.net + accesrestreint(0.2)
X-Spip-Cache 604800
Cache-Control max-age=604800
Last-Modified Wed, 06 Feb 2008 12:03:39 GMT
Content-Encoding gzip
Keep-Alive timeout=15, max=97
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/javascript

Appels suivant (une dizaine): entre 180 et 220ms - marqué comme servi
depuis le cache
Response headers
Date Mon, 18 Feb 2008 20:42:57 GMT
Server Apache
Connection close
Cache-Control max-age=604800
Vary Cookie,Accept-Encoding

Sur un site utilisant jquery 1.1.4 (un poil plus lourd mais pas tant
que ça), minifié via YUICompressor, site hébergé sur les serveurs
propres d'une institution et administré en interne par un ingénieur
système diplômé et expérimenté:

1er appel: 343 ms

Date Mon, 18 Feb 2008 21:13:33 GMT
Server Apache
Last-Modified Mon, 10 Dec 2007 12:33:21 GMT
Etag "480510-93f5-cd33e640"
Accept-Ranges bytes
Content-Length 37877
Keep-Alive timeout=15, max=100
Connection Keep-Alive
Content-Type application/x-javascript

2ème appel: 312ms, pas en cache client
Date Mon, 18 Feb 2008 21:18:32 GMT
Server Apache
Last-Modified Mon, 10 Dec 2007 12:33:21 GMT
Etag "480510-93f5-cd33e640"
Accept-Ranges bytes
Content-Length 37877
Content-Type application/x-javascript

3ème appel: 337ms, pas en cache client
Date Mon, 18 Feb 2008 21:21:28 GMT
Server Apache
Last-Modified Mon, 10 Dec 2007 12:33:21 GMT
Etag "480510-93f5-cd33e640"
Accept-Ranges bytes
Content-Length 37877
Content-Type application/x-javascript

Apparament, la solution spip par défaut n'est pas si mauvaise que ça.

Alors bien sûr, en prenant le temps de paufiner la config Apache, on
doit très certainement pouvoir obtenir mieux avec le js statique
minifié qu'avec le squelette spip, mais bon: encore faut-il avoir la
possibilité (accès à la conf Apache) et la compétence pour le faire.
Ce qui n'est pas le cas de la grande majorité des utilisateurs de
spip.

(snip)

Je ne suis pas là pour juger spip, on m'a demandé mon avis sur des
choix d'implémentation au niveau performance et scalabilité. Et
globalement à ce niveau ce ne sont pas des bons choix
d'implémentation.

Dans la mesure où c'est une solution *par défaut* - en d'autres
termes, où ce n'est pas codé en dur dans le noyeau (c'est juste un
squelette spip), et où il est relativement aisé d'utiliser une autre
solution -, le terme de "choix d'implémentation" n'est pas forcément
approprié...

Accessoirement, il en va de même pour le spip_cron: rien n'empêchent
ceux qui ont les droits (sur le serveur) et la compétence nécessaires
de virer l'appel à spip_cron des squelettes et d'utiliser de vrai cron
jobs à la place.

Maintenant il y a sans doute plein de bonne raison

Peut-être, oui. Probablement même. Comme par exemple de pouvoir avoir
quelque chose qui *par défaut* fonctionne sur la majorité des
hébergements grand public et ne nécessite pas d'être ingénieur en
informatique, *sans* pour autant empêcher les ingés de reparamétrer
la bête pour des besoins plus pointus.

Maintenant, toutes les bonnes volontés sont les bienvenues pour
améliorer le système... Tant que le résultat reste accessible au plus
grand nombre.

Apparament, la solution spip par défaut n'est pas si mauvaise que ça.

Alors bien sûr, en prenant le temps de paufiner la config Apache, on
doit très certainement pouvoir obtenir mieux avec le js statique
minifié qu'avec le squelette spip, mais bon: encore faut-il avoir la
possibilité (accès à la conf Apache) et la compétence pour le faire.
Ce qui n'est pas le cas de la grande majorité des utilisateurs de
spip.

Le serveur web est mal configuré, il devrait rajouter des entêtes
expire sur les assets statiques css et js, et éventuellement avoir un
reverse proxy ou un CDN pour les servir encore plus rapidement. C'est
le boulot de l'hébergeur de faire ca, pas celui de l'hébergé donc ca
ne donne pas de boulot supplémentaire au propriétaire du spip. Mais
mettons que ca ne soit pas fait, ca arrive trop souvent.

Il n'en reste pas moins que ca fait une différence de taille dans des
conditions réelles de charge au niveau hébergement. Coté serveur on
charge 1 fois spip au lieu de 2. La vitesse de transfert de ce fichier
ne dépend pas des performances de l'hébergement, et n'ajoute aucune
charge perceptible pour l'hébergement.

Ton test est fait dans des conditions idéales, c'est à dire @localhost
ou sur un serveur qui tourne tranquille, résultat au final les perfs
sont négligeables sans cache navigateur. En revanche tu peux vérifier
si ta t'amuses qu'en faisant monter la charge de ton serveur tu verras
la durée s'allonger dans un cas et pas dans l'autre. Si ca commencait
à taper, tu perdrais énormement de marge car à chaque page spip
chargée (en cache spip ou pas) tu vas charger cette asset (en cache
spip).

J'ai conscience de ne pas être clair mais quand tu es comme moi
hébergeurs de milliers de spip, ou propriétaire d'un spip avec un gros
gros traffic, diminuer par deux le nombre de requête spip dynamique
fait une différence tout à fait notable pour les serveurs et donc pour
les utilisateurs finaux. Ne pas doubler le nombre de requete spip par
page vue permet de doubler le nombre de page vue à ressource
équivalente.

Quant à l'argument que ce fichier js est lié au squelette il est vrai
mais d'importance exagéré, ca n'est pas différent des images, à ce que
je sache on ne charge pas pour autant les images via spip. Merger et
compresser est une excellente habitude mais le faire dynamiquement est
pénalisant en terme d'hébergement, particulièrement quant il s'agit
d'utiliser spip pour faire cela. (ca serait aussi vrai pour des css,
je le vois fréquement genre http://www.pyrat.net/ et je trouve ca
navrant. Mais mon avis est partial, il est purement orienté
performance et scalabilité, sur un projet aussi populaire que spip
c'est une caractéristique importante.