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

Soyez le premier à donner votre avis sur cette source.

Vue 4 543 fois - Téléchargée 530 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
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
4
J'ai oublié mon deuxième guillemet double fermant...

<?php

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

for(...)
{
echo '', $truc ,'',"\n";
}
?>
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
4
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";
}
?>


++
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

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°
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
$bench->Average_Function(50 ,'MyFunction' , array('var1','var1') ,'commentaire sur la fonction');

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

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...

@+ ;)
Afficher les 8 commentaires

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.