salut
je suis entrain de coder un peu comme un porc et donc je suis entrain de developper un petit truc pour benchmarker tous les appels de fonctions etc... il fadurait qu'au final je puiss faire une stat assez sympa, de ce style la:
nom de fonction
nombre d'appels
temps d'exécution total
pour cela je construis deux fonctions,
dbgstart(function_name)
et un
dbgend()
ok pour l'instant c bien sympa; a je possede un tableau dans lequel je vais ajouter, a chaque appel de fonction, un sous tableau avec le nom de fonction (et les eventuels parametres ?), l'instant d'exécution...
donc a chaque appel de fonction sera crée et ajouté celui ci au tableau d'appels ...
ok juske la tout va bien,
pour pouvoir chronometrer les temps d'execution, il faut que je fasse un dbgend histoire de pouvoir marquer la fin d'execution d'une fonction
donc, par exemple toute fonction sera definie ainsi:
function pouet()
{
dbgstart("pouet" );
// code a executer ...
// ....
// puis juste avant de retourner on dbgend() ;)
dbgend()
return la_valeur_cherchee;
}
|
voial meme si la fonction ne retourne rien on s'en fout on met le dbgend juste la ou son execution s'arrete ...
voila, les problemes qui se posent, sont par exemple si une fonction en appelle une autre; dans ce cas la il faut que l'appel respectif a dbgend() ecrive dans la bonne case sa date de fin d'execution
il faut aussi que si ya des appels successifs a plusieurs fonctions, ca ecrive le temps de fin d'exec dans la bonne case ...
voila en gros c un truc completement trivial que je cherche a faire, mais je suis kéblo car saturé de m'être explosé le crane depuis ca fait un mois donc voila si vous avez une idee d'algorithme tout con qui fasse ca, merci bcp ! (en fait je cherche a realiser les fonction dbgstart et dbgend)
apres, quand je voudrais avoir un recapitulatif, je balayerai tout le tableau d'infos et j'ajouterai les temps etc... c pas le probleme
voila aidez moi ca peut servir a d'autres j'espere
salut!