Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1706 connectés 

  FORUM HardWare.fr
  Programmation
  Java

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°591182
the_white_​rabbit
Follow the white rabbit !
Posté le 15-12-2003 à 15:26:31  profilanswer
 

 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 !

mood
Publicité
Posté le 15-12-2003 à 15:26:31  profilanswer
 

n°591183
chrisbk
-
Posté le 15-12-2003 à 15:29:30  profilanswer
 

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)

n°591185
the_white_​rabbit
Follow the white rabbit !
Posté le 15-12-2003 à 15:34:02  profilanswer
 

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

n°591186
chrisbk
-
Posté le 15-12-2003 à 15:35:47  profilanswer
 

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)

n°591187
the_white_​rabbit
Follow the white rabbit !
Posté le 15-12-2003 à 15:37:41  profilanswer
 

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 ?

n°591188
chrisbk
-
Posté le 15-12-2003 à 15:38:44  profilanswer
 

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 ?

n°591189
Cherrytree
cn=?
Posté le 15-12-2003 à 15:41:50  profilanswer
 

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
n°591191
the_white_​rabbit
Follow the white rabbit !
Posté le 15-12-2003 à 15:42:38  profilanswer
 

chrisbk a écrit :


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


 
Non, non excuse !

n°591192
benou
Posté le 15-12-2003 à 15:42:40  profilanswer
 

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
n°591193
benou
Posté le 15-12-2003 à 15:43:40  profilanswer
 

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
mood
Publicité
Posté le 15-12-2003 à 15:43:40  profilanswer
 

n°591196
chrisbk
-
Posté le 15-12-2003 à 15:45:29  profilanswer
 

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
 

n°591199
the_white_​rabbit
Follow the white rabbit !
Posté le 15-12-2003 à 15:48:00  profilanswer
 

Merci à tous, je test !

n°591201
the_white_​rabbit
Follow the white rabbit !
Posté le 15-12-2003 à 15:52:38  profilanswer
 

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

n°591202
El_gringo
Posté le 15-12-2003 à 15:57:31  profilanswer
 

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 !
n°591211
Cherrytree
cn=?
Posté le 15-12-2003 à 16:19:47  profilanswer
 

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
n°591240
darklord
You're welcome
Posté le 15-12-2003 à 16:57:43  profilanswer
 

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
n°591247
nraynaud
lol
Posté le 15-12-2003 à 17:04:04  profilanswer
 

java -Xprof  
c'est pas bien ?


---------------
trainoo.com, c'est fini
n°591249
Cherrytree
cn=?
Posté le 15-12-2003 à 17:04:42  profilanswer
 

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
n°591261
darklord
You're welcome
Posté le 15-12-2003 à 17:22:50  profilanswer
 

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
n°591267
Cherrytree
cn=?
Posté le 15-12-2003 à 17:26:28  profilanswer
 

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
n°591269
darklord
You're welcome
Posté le 15-12-2003 à 17:28:23  profilanswer
 

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


---------------
Just because you feel good does not make you right
n°591278
Cherrytree
cn=?
Posté le 15-12-2003 à 17:47:42  profilanswer
 

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
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

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

 

Sujets relatifs
Fonction pour vérifier si un caractère est une lettre?Comment faire en java pour....
[JAVA] transformer ResultSet en Vector d'ArrayCalcul de delai en fonction des jours ouvrables...
Portail Web en "Java" par quoi commencer[Langage C] Existe t il une fonction de conversion entier->caractère??
[PHP] fonction qui returne true si 2 fichiers sont identiques[VB] Fonction InStr et particularités
explication sur calculatrice en java[C++, C#, Java] constructeurs, attention au code généré par le compilo
Plus de sujets relatifs à : [Java] Evaluer le temps d'exécution d'un fonction.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR