IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Le temps d'exécution d'un code


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    inht
    Inscrit en
    Mai 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : inht

    Informations forums :
    Inscription : Mai 2014
    Messages : 8
    Points : 12
    Points
    12
    Par défaut Le temps d'exécution d'un code
    Bonjour,

    Je cherche comment calculer le temps d'exécution de ce code. Mais le résultat est le résultat de l'exécution d'un seul thread seulement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       long startTime = System.currentTimeMillis();long endTime  ;
            endTime = 0;
            Thread thread = new Thread(new DelayedWriter(jTextField3,jTextField5, jTextField4.getText(),endTime));
       thread.start();
    //   long endTime = System.currentTimeMillis();
       jLabel18.setText("temps = "+ (endTime-startTime));
     
    }
     
    class DelayedWriter implements Runnable{
        JTextField tf;JTextField tf1;
        String s1 = jTextField4.getText(),s0 =jTextField2.getText();
     
        String s,str="",str1="";long endTime;
        public DelayedWriter(JTextField tf,JTextField tf1, String s,long endTime)
        {
     
            this.tf = tf;
            this.tf1 = tf1;
            this.s=s;
            this.endTime=endTime;
     
        }
        public void run(){
            for (int i=0; i< s.length(); i++) 
            {
                char prem = s1.charAt(i),prem1=s0.charAt(i);
                int x= Character.getNumericValue(prem1) ^ Character.getNumericValue(prem);
                str1 = String.valueOf(x);
     
                tf.setText(s.substring(0,i+1));
                            try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
     
                }
                tf1.setText(tf1.getText().concat(str1));
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
     
                }
            }
            endTime = System.currentTimeMillis();
        }
        }

    Est ce que c'est juste ou il faut utiliser autre méthode ?

    Merci. temps = endTime - startTime

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 633
    Points
    21 633
    Par défaut
    Ben c'est forcément faux, le résultat n'est disponible que quand tu as terminé les actions. À la fin du thread qui prend du temps, donc.

  3. #3
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    Ce que tu viens de mesurer est le temps de lancement de la thread et non pas le temps d'exécution de celle ci !
    Concrètement, ta thread va être lancer en parallèle de la thread d'exécution de ton programme, donc dès que la méthode start est lancé ton programme continue de s'exécuter sans attendre la fin de l'exécution de la thread.

    Si tu souhaites mesurer le temps d'exécution de ta thread, il faut que tu places les éléments de mesure dans la méthode run de celle-ci !

Discussions similaires

  1. [XL-2007] Optimisation du temps d'exécution d'un code vba
    Par chepa dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/06/2012, 10h39
  2. Optimisation de temps d'exécution d'un Code VBA
    Par Adilleroy dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 26/07/2010, 14h16
  3. Calcul du temps d'exécution d'un code
    Par phoque.r dans le forum MATLAB
    Réponses: 2
    Dernier message: 13/03/2008, 11h40
  4. Comment trouver le temps d'exécution d'un code?
    Par Renma2 dans le forum VB.NET
    Réponses: 14
    Dernier message: 03/10/2007, 21h20
  5. [Fait]Temps d'exécution d'un code
    Par JeremieT dans le forum Contribuez
    Réponses: 2
    Dernier message: 30/08/2006, 07h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo