OVH Cloud OVH Cloud

Mesure de performances d'un programme java

3 réponses
Avatar
rcocula
Bonjour tout le monde.
Comment faites vous lorsque vous voulez effectuer des mesures du temps
d'execution de morceaux de programme (pour voir ou ca coince).
Existe-t-il des api (libres de préférence) qui facilitent la chose ?
Existe-t-il un outil dans eclipse (le debogger peut être ?).

3 réponses

Avatar
Marc Petit-Huguenin
Remi COCULA wrote:
Bonjour tout le monde.
Comment faites vous lorsque vous voulez effectuer des mesures du temps
d'execution de morceaux de programme (pour voir ou ca coince).
Existe-t-il des api (libres de préférence) qui facilitent la chose ?
Existe-t-il un outil dans eclipse (le debogger peut être ?).


Un moyen gratuit et toujours disponible :

java -Xrunhprof:cpu=samples ...

Ca cree un fichier java.hprof.txt qui contient les durees d'execution de
toutes les methodes. Tres pratique pour trouver les hotspots et optimiser
un programme.

Avatar
Pif
quand ton but est déterminer ou il est nécessaire d'optimiser une
fonction t'as les profilers qui existent et qui sont bien, un coup de
google sur profiler et java te donnera plein de réponses, y'en a pour
eclipse, y'a optimise-it pour borland...

sinon, t'as toujours la petite ligne de code avec un système.out si ton
problème est localisé !
Avatar
Xavier Tarrago
N'oublions pas System.currentMillis() qui permet de mesurer le temps écoulé
entre deux moments (début et fin d'une fonction par exemple).
Malheureusement, il n'y a rien pour le temps cpu utilisé par un thread, ce
qui serait plus utile. Je ne suis pas sur, mais je crois qu'il y a quelque
chose de nouveau dans le jsdk1.5 là dessus (Monitoring machin tout ça...).

"Pif" a écrit dans le message de
news:chk7qr$bhv$

quand ton but est déterminer ou il est nécessaire d'optimiser une
fonction t'as les profilers qui existent et qui sont bien, un coup de
google sur profiler et java te donnera plein de réponses, y'en a pour
eclipse, y'a optimise-it pour borland...

sinon, t'as toujours la petite ligne de code avec un système.out si ton
problème est localisé !