[php5] classes des benchmark (global et iterate) avec console graphique et sessions

Soyez le premier à donner votre avis sur cette source.

Vue 4 739 fois - Téléchargée 570 fois

Description

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)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
1 avril 2007 à 16:52
J'ai oublié mon deuxième guillemet double fermant...

<?php

$classesCss = array('ligne1'=>'ligne2', 'ligne2'=>'ligne1');
$couleur = 'ligne1';

for(...)
{
echo '', $truc ,'',"\n";
}
?>
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
1 avril 2007 à 16:51
Il y'a encore mieux comme solution pour le calcul du style. La voici :

<?php

$classesCss = array('ligne1'=>'ligne2', 'ligne2'=>'ligne1');
$couleur = 'ligne1';

for(...)
{
echo '', $truc ,'',"\n";
}
?>


++
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
28 mars 2007 à 02:58
for ($i=0, $len=strlen($timer); $i<$len; $i++) {
$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°
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
27 mars 2007 à 18:26
$bench->Average_Function(50 ,'MyFunction' , array('var1','var1') ,'commentaire sur la fonction');

Pour ca, tu peux utiliser la reflection facilement :)
phoenix1789 Messages postés 6 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 22:50
Salut et merci,

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.