PHP5 - CLASSE DE BENCHMARK

Signaler
Messages postés
10
Date d'inscription
jeudi 14 octobre 2004
Statut
Membre
Dernière intervention
11 janvier 2006
-
Messages postés
1
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
11 avril 2012
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35497-php5-classe-de-benchmark

Messages postés
1
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
11 avril 2012

Juste comme ça, je me suis permis de rajouter une méthode à ta class bench().

Plutôt que de passer par des echo $bench->variable->getResult(); pour chaque variable, je fais comme ça.

public function allResult() {
foreach ($this->bench as $key => $value) {
$array[$key] = $value->getResult();
}
return Fonction::printr($array);
}

Fonction::printr() n'est qu'un print_r() entouré de balise

Moins esthétique que du echo mais plus rapide à mettre en oeuvre pour du debug ;)

Merci beaucoup pour cette class en tout cas.
Messages postés
1
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
21 février 2010

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

Sympa je ne connaissais pas la fonction magique __get()... je suis pas encore trop php5 les serveurs pour lesquels je code étant encore en php4... .. .

j'ais une class que j'avais fais et qui utilise un principe d'auto increment pour gérer automatiquement plusieurs benchmarks imbriqués sans avoir à créer un nom à chaque fois... .. .

en gros tu as un attribut $benchmarkid qui s'increment de 1 lorsqu'un bench est lancé quand tu lance le benchmark tu fais

$benchId = $monObjet->startBench('la description');

ça lance le timer et renvoi l'id du benchmark et quand tu veux stoper le bench et/ou récupérer le résultat tu fais

$monObjet->stotBench($benchId); pour juste le stoper ou $monObjet->getBench($benchId); pour le stopper, s'il ne l'est pas déja, et pour récupérer le résultat

les infos sont stocké dans un tableau comme suit...

array(
'desc' => 'le nom de la fonction testée',
'start' => 'le timer de départ',
'stop' => 'le timer de fin',
'total' => 'le résultat du benchmark',
'isFinish' => 'pour savoir si le bench est finit ou non pour le get'
),

L'avantage... t'as pas a faire de nom perso pour chaque bench vu que c'est un id numérique qui est attribué ça permet d'imbriquer des benchmark les uns dans les autres quand tu test par exemple une méthode d'une class qui fait elle même appel à d'autre méthodes... le désavantage... j'en vois pas si ce n'est peut être que les résultats sont stockés dans un taébleau un peu plus bordellique... et encore que... .. .

Voili voilou... rien de mirobolant... de toute façon pour une class de benchmark... lol... c'est juste une autre façon de faire... .. .

@ tchaOo°
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
Ok ok, je vais changer...

Il ne me reste plus qu'à faire une interface avec zone de texte pour pouvoir faire ca plus rapidement que de devoir taper du code à chaque fois.

Jvais concocter ca dans pas longtemps (maintenant que j'ai optimisé ma classe de DB, je vais pouvoir le faire !)
Afficher les 12 commentaires