Optimisation
Dernière modification : 2007/08/04 01:30
Accueil
/
Changements récents
Éditer (
Aide
) /
Historique
/
Upload
!! Profiler le code --> ajouter une fonction et ses appels à des endroits stratégiques {{ function profile ($txt,$dump=FALSE) { static $times; if ($dump) { if (!file_exists("perfs.log")) { $f = fopen("perfs.log","w"); for ($i=1;$i
on obtient le résultat dans le fichier perfs.log : {{Traitement:Formatage: 0.027288:0.407159: 0.027298:0.453744: 0.032468:0.444973: 0.025138:0.446650:}} !! Obtenir les perfs Voici un petit script pour collecter les données en affichage : {{#!/bin/bash url="http://localhost/tw/?page=TestSpeed" i=0 nb=20 while [ "$i" -lt "$nb" ] do echo "$i" wget -q -O /dev/null "$url" i=`expr $i + 1` done wget -q -O - ${url%\?*}perfs.log }} Il faut bien sur remplacer la variable url par la page à tester. !! Résultats Voici les 1ers résultats obtenus en remplaçant u_niquement les preg_replaces par str_replace pour les chaines statiques soit : * les remplacement des tags dans le template (CONTENT, HISTORY, PAGE_TITLE ...) * les regex sans références dans la partie Formatage de page (ligne 194 en 2.21) Les chiffres sont donnés pour 4 versions sur le rendu de la page [TestSpeed] : # TigerWiki 2.21 non modifié (vanilla) # TigerWiki 2.21 avec les optimisations # TigerWiki 2.21 avec ma balise [Code] # TigerWiki 2.21 avec ma balise [Code] et les optimisations (cette version est [dispo la|sources/?file=./2.21_str_code/index_str_code.php]) Le fichier au format pdf : [Perfs|data/Perfs_TigerWiki.pdf] Le gain n'est pas foudroyant (entre 0.5% et 1.7%) mais c'est sans doute un travail qui mérite d'être fait. !! Axes d'améliorations * remplacer preg_replace par str_replace la ou on peut * traquer les preg_match à remplacer par strpos * appliquer le même raisonnement aux autres preg_* * surement pleins d'autres choses au niveau de l'algo donc plus compliquées :) TOC
Mot de passe :
Éditer (
Aide
) /
Historique
/
Upload
Wiki utilisant
TigerWiki 2.19+4b4
2025/07/02 15:13 -- 216.73.216.73