[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 )
------------------------------------