L’espace privé est de plus en plus lourd. En matière de temps d’exécution, le coût fixe (overhead) apporté par le parsing de tous les fichiers inclus systématiquement représente une charge réelle.
Voici un petit comparatif que j’ai fait il y a quelques temps sur ma machine locale. Il s’agit de comparer le temps de rendu d’une page de l’espace privé assez simple, type "configuration du site" (beaucoup de texte statique), mesuré avec le BenchMark* Apache. Je cite les chiffres de mémoire :
35 ms pour SPIP 1.3
85 ms pour SPIP 1.7
130 ms pour SPIP 1.8 CVS
Sur un serveur chargé, la différence se ressentira. D’une manière générale, l’espace privé de la 1.7 (malgré des améliorations par rapport à 1.4, 1.5 et 1.6) donne une impression de plus grande inertie que celui de la 1.3. Il y a probablement aussi des raisons liées au code HTML, plus complexe.
Le problème s’aggrave encore avec la 1.8 CVS car, en plus du temps d’envoi de la page ci-dessus, il y a des javascripts dynamiques qui alourdissent le temps de chargement. Ainsi, on a :
130 ms pour ecrire/synchro.php3
78 ms pour /ecrire/js_menu_rubriques.php?date=&dir=
Quelques pistes :
Améliorer la GestionDesFormulaires.
Mieux répartir les fonctionnalités en fichiers : par exemple, du code de traitement des forums est inclus systématiquement dans inc.php3 ou inc_presentation.php3, alors qu’il n’est utilisé que sur quelques pages.
Séparer inc_presentation en deux versions exclusives : une pour l’affichage normal, une pour l’affichage texte uniquement. Cela présente l’avantage supplémentaire de pouvoir travailler sur la VersionTexte* et la faire diverger de la version normale (accessibilité, bidules-W3C...).
tenter une réécriture de l’admin avec un système à base de SquelettesEtendus
D’autres améliorations plus générales contribueront peut-être à l’amélioration de l’espace privé :
Allègement de la CompatibilitePHP
Simplification de certains morceaux de code bizarres bloqués par la nécessité de la compatibilité ascendante (gestion des metas par exemple)