[Kos-dev] Quelques idées
Anthony Jaguenaud
kos-dev@enix.org
Tue, 29 Apr 2003 14:56:59 +0200
Thomas Petazzoni wrote:
> Hello,
>
> Quelques idées en vrac :
>
> Y-a-t-il un obstacle technique pour implémenter ma proposition ?
Oui. Si le but et juste de savoir ou on passe, et combien de temps, on
peut creer une fonction qui prend comme paramettre un identifiant, quand
on rentre dans cette fonction, elle incremente un compteur de passage,
declanche le chrono. A la sortie, il faut arreter le chrono, stocker le
temps passe quelques part.
En C, il faut mettre la fct stop a chaque return. On peut prefere la
solution d'une classe automatique, le destructeur sera appelle juste
avant le return.
Dans un cas comme return maFctQuiFaitPleinDeTruc(...); je ne sais pas
quand il fait la destruction. Il vaut mieux preferer une solution du type :
tmp = maFctQuiFaitPleinDeTruc(...);
return tmp;
Sinon, penser a calibrer le system de chrono. En effet, un code de type :
start(id);
stop(id);
va prendre quelques cycles, qu'il faudra soustraire des autres mesures.
Pour avoir des stats a peu pres valide, faire l'operation si dessus au
moin 10000 fois.
> * Avoir un truc pour détecter les fuites de mémoire : l'OS est petit
> pour l'instant, ça serait intéressant de pouvoir tester si des scénarios
> du type : construction team construction thread desctruction thread
> destruction team engendrent des fuites mémoires.
Reimplementer un malloc, ou une sur-couche au malloc qui conserve une
trace de tous les allocation memoires. A chaque desallocation, tu
enleves de la liste. a la fin, tu fait un truc du genre repport. Et s'il
reste des trucs, il y a fuite. Des solutions simple sont faisable,
sachant qu'elles ralentiront sensiblement l'execution du code.
Voila, juste quelques commentaires.
En esperant etre utile ( enfin juste un peu quoi ;-) )
A+
--
------------------------------------
Anthony JAGUENAUD
NORTEL NETWORKS
R&D PCU Developpement
e-mail : jaguenau@nortelnetworks.com
tel : 01.69.55.55.09 ( ESN 574 )
------------------------------------