Ce package permet :
- Phoenix_Benchmark_Global : effectue un benchmark ayant cette architecture (courante) :
$bench = new Phoenix_Benchmark_Global(bool $Save = false);
$bench->Start();
// ...
$bench->AddMarker("#marker1");
// ...
$bench->AddMarker("#marker2");
// ...
$bench->AddMarker("#marker3");
$bench->End(); // affiche le resultat si $Save = false
$bench->Save(); // sauvegarde en session si $Save = true
$bench->View(); // affiches les benchs en session si $Save = true
- Phoenix_Benchmark_Iterate : calcul la moyenne d'execution d'une fonction sur n appel
$bench = new Phoenix_Benchmark_Iterate(bool $Save = false);
$bench->Average_Function(50 ,'MyFunction' , array('var1','var1') ,'commentaire sur la fonction');
$bench->Save(); // sauvegarde en session si $Save = true
$bench->View(); // affiches les benchs en session si $Save = true
Ok jusque là, vous me dirait, beaucoups de classe existe dans ce registre...
L'avantage ici, c'est qu'il est possible d'enregistrer les benchs en session et d'afficher un console 'graphique' avec %.
Cela permet par exemple, d'optimiser plus simplement votre code...
Par exemple, vous faite un premier benchmark de votre code non optimisé, ensuite, vous retravaillez votre code, optimisés etc... et vous actualisez votre page de test pour effectuer un nouveau benchmark... Vous pourrez donc comparer les deux benchmarks ! et ainsi de suite...
Je suis ouvert à toute proposition d'optimisation !
Conclusion :
Tout est dans le zip :
- Classes Phoenix_Benchmark
- Démonstrations
- Documentation (phpDoc)
1 avril 2007 à 16:52
<?php
$classesCss = array('ligne1'=>'ligne2', 'ligne2'=>'ligne1');
$couleur = 'ligne1';
for(...)
{
echo '', $truc ,'',"\n";
}
?>
1 avril 2007 à 16:51
<?php
$classesCss = array('ligne1'=>'ligne2', 'ligne2'=>'ligne1');
$couleur = 'ligne1';
for(...)
{
echo '', $truc ,'',"\n";
}
?>
++
28 mars 2007 à 02:58
$NewTimer.= ''.$timer[$i].''; // On utilise plus les { } :)
}
=>
for ($i=0, $len=strlen($timer); $i<$len; $i++)
$NewTimer.= ''.$timer[$i].'';
Mais si tu veux optimiser n'utilise pas l'opérateur ternaire... .. . ;o)
@ tchaOo°
27 mars 2007 à 18:26
Pour ca, tu peux utiliser la reflection facilement :)
26 mars 2007 à 22:50
Oui en effet il y a beaucoups de petites choses à revoir...
et notament le concept objet comme tu dis, à la rigueur pour Phoenix_Benchmark_Global, mais c'est vrai que pour .._Iterate...
Jme disais bien qu'un truc n'allait pas ! La classe Phoenix_Benchmark n'a pour l'heure aucune utilité...Je passerai un coup d'éponge plus tard...
Pour ce qui est du logging des benchs, j'avais fait une console très riche graphiquement (une classe et une page en procédural pour la console)...
J'enverrai des aperçus écran plus tard...
@+ ;)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.