[Java] Evaluer le temps d'exécution d'un fonction.

Evaluer le temps d'exécution d'un fonction. [Java] - Java - Programmation

Marsh Posté le 15-12-2003 à 15:26:31    

 Voilà,  
 
  je dois chronométrer l'exécution d'une fonction, mais j'ai un problème.  
  Au début de ma fonction à chronométrer, j'initialise une Thread qui incrémente une variable toute les 1 mili-secondes. Mon problème, est que ça me renvoit des résultats différents à chaque fois.
 
  Y'a-t-il une meilleur méthode ? Plus simple à mettre en oeuvre et surtout plus efficace et précise...  
 
  Merci !

Reply

Marsh Posté le 15-12-2003 à 15:26:31   

Reply

Marsh Posté le 15-12-2003 à 15:29:30    

Ben que le tps soit != a chaque fois c un peu normal
tu peux utiliser un profiler (JProfiler, tres bien) ou te bricoler un truc maison (system.GetCurrentTime() je crois, ou dans le genre)

Reply

Marsh Posté le 15-12-2003 à 15:34:02    

Est-ce que je peux me fier à la méthode sleep() alors ?

Reply

Marsh Posté le 15-12-2003 à 15:35:47    

pour faire ce que tu veux, non, surtout pas avec des intervals de 1ms (bon je dis ca, mais ca depend fortement de l'OS..sous win j'utiliserais pas du tout ta methode comme facon de chronometrage)

Reply

Marsh Posté le 15-12-2003 à 15:37:41    

chrisbk a écrit :

pour faire ce que tu veux, non, surtout pas avec des intervals de 1ms (bon je dis ca, mais ca depend fortement de l'OS..sous win j'utiliserais pas du tout ta methode comme facon de chronometrage)


 
 
Je sais que c'est peut-être pas la meilleur solution, mais c'est la seule que j'ai trouvé... Est-ce que tu en connais une autre par hasard ?

Reply

Marsh Posté le 15-12-2003 à 15:38:44    

The_White_Rabbit a écrit :


 
 
Je sais que c'est peut-être pas la meilleur solution, mais c'est la seule que j'ai trouvé... Est-ce que tu en connais une autre par hasard ?


 
???
et ma premiere reponse c'est du vent ?

Reply

Marsh Posté le 15-12-2003 à 15:41:50    

Il y a une méthode qui consiste à faire la différence entre deux appels à System.getCurrentMillis() (ou un truc du genre), mais j'ai cru lire que cette méthode retournait un résultat faux. Qqn peut confirmer ?


---------------
Le site de ma maman
Reply

Marsh Posté le 15-12-2003 à 15:42:38    

chrisbk a écrit :


 
???
et ma premiere reponse c'est du vent ?


 
Non, non excuse !

Reply

Marsh Posté le 15-12-2003 à 15:42:40    

Code :
  1. long begin = System.currentTimeMillis();
  2. taFonction();
  3. long end = System.currentTimeMillis();
  4. float time = ((float) (end-begin)) / 1000f;


Message édité par benou le 15-12-2003 à 15:42:51

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 15-12-2003 à 15:43:40    

Cherrytree a écrit :

Il y a une méthode qui consiste à faire la différence entre deux appels à System.getCurrentMillis() (ou un truc du genre), mais j'ai cru lire que cette méthode retournait un résultat faux. Qqn peut confirmer ?


C'est pas faux, mais c'est pas très précis ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 15-12-2003 à 15:43:40   

Reply

Marsh Posté le 15-12-2003 à 15:45:29    

Cherrytree a écrit :

Il y a une méthode qui consiste à faire la différence entre deux appels à System.getCurrentMillis() (ou un truc du genre), mais j'ai cru lire que cette méthode retournait un résultat faux. Qqn peut confirmer ?


 
boaf c comme ca que je fais quand je veux avoir une idee grossiere de ou je perds du tps.
 
genre si j'ai

Code :
  1. A();
  2. B();
  3. C();


je met des getCurrentMillis() entre tout ca, ca me donne generalement une bonne idee de ce qu'il se passe
 

Reply

Marsh Posté le 15-12-2003 à 15:48:00    

Merci à tous, je test !

Reply

Marsh Posté le 15-12-2003 à 15:52:38    

Sa marche vraiment mieux que mon précédent système.

Reply

Marsh Posté le 15-12-2003 à 15:57:31    

Et en plus c'est + simple. C'est pas merveilleux la vie !? (superbe intervention de ma part ! :D)


---------------
Les Vers Solitaires, on aime ... ou pas !
Reply

Marsh Posté le 15-12-2003 à 16:19:47    

benou a écrit :


C'est pas faux, mais c'est pas très précis ...


Merci de ta confirmation.
 

El_gringo a écrit :

Et en plus c'est + simple. C'est pas merveilleux la vie !? (superbe intervention de ma part ! :D)


Bravo El_gringo.


---------------
Le site de ma maman
Reply

Marsh Posté le 15-12-2003 à 16:57:43    

Cherrytree a écrit :

Il y a une méthode qui consiste à faire la différence entre deux appels à System.getCurrentMillis() (ou un truc du genre), mais j'ai cru lire que cette méthode retournait un résultat faux. Qqn peut confirmer ?


 
y a pas une méthode. Tu fais un appel avant et après puis tu fais la différence mais bon c'est un chronomètre à la louche quoi. Moi je trouve ça pas fiable du tout  
 
(m'enfin pour donner une idée de départ ca peut déjà etre ca)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 15-12-2003 à 17:04:04    

java -Xprof  
c'est pas bien ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 15-12-2003 à 17:04:42    

DarkLord a écrit :


 
y a pas une méthode. Tu fais un appel avant et après puis tu fais la différence mais bon c'est un chronomètre à la louche quoi. Moi je trouve ça pas fiable du tout  
 
(m'enfin pour donner une idée de départ ca peut déjà etre ca)


([:kiki]) Méthode a ici le sens de "marche à suivre". La "méthode" dont je parlais, consiste à appeler deux fois la méthode Java adéquate et faire la différence des deux résultats.


Message édité par Cherrytree le 15-12-2003 à 17:05:04

---------------
Le site de ma maman
Reply

Marsh Posté le 15-12-2003 à 17:22:50    

Cherrytree a écrit :


([:kiki]) Méthode a ici le sens de "marche à suivre". La "méthode" dont je parlais, consiste à appeler deux fois la méthode Java adéquate et faire la différence des deux résultats.


 
ponctué de 'un truc du genre' donc je précisais [:kiki]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 15-12-2003 à 17:26:28    

DarkLord a écrit :


 
ponctué de 'un truc du genre' donc je précisais [:kiki]


Oh ça ? C'est parce que j'étais pas sûr du nom de la méthode (cette fois-ci, je parle de la méthode Java :D).


---------------
Le site de ma maman
Reply

Marsh Posté le 15-12-2003 à 17:28:23    

ah oui ok :o
braife, c''est pas vraiment précis quoi


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 15-12-2003 à 17:47:42    

DarkLord a écrit :

ah oui ok :o
braife, c''est pas vraiment précis quoi


Ouais :/ Je ferai mieux la prochaine fois.


---------------
Le site de ma maman
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed