Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46

    [JAVA] misurare il tempo di un algoritmo

    Ciao!

    Come faccio a misurare il tempo di esecuzione di un algoritmo?
    Esiste qualche classe in java che misura il tempo?
    Ho trovato la classe Time ma sinceramente non ho capito molto come usare i suoi metodi.

    Qualche consiglio?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    nella System c'è currentTimeMillis

    codice:
    long inizio = System.currentTimeMillis();
    
    //algoritmo
    
    long fine = System.currentTimeMillis();
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46
    Grazie!

    Un'altra cosa dato che il risultato è : 1133984140781 millisecondi come faccio a convertirlo in secondi?

  4. #4
    se quello che ti ritorna sono millisecondi vuol dire che ogni 1000 di quelli hai 1 secondo...quindi fai una banale divisione

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46
    Argh!!!!!!!!!!!

    ...è vero, non ci avevo mica pensato!!!

    Grazie mille!

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ahem... a giudicare dai numeri, ti sei dimenticato di fare la sottrazione tra fine e inizio... stai calcolando un tempo di esecuzione, mentre il metodo che ti ho suggerito, chiama, ad ogni invocazione, il tempo trascorso da epoch (1970)... insomma, quelli sono 35 e passa anni
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46
    giusto...mi sembravano un pò troppi!

    posso chiederti come faccio a sistemarlo, cioè quanto devo sottrarre ad entrambi i numeri?

  8. #8
    semplicemente prendi i millisecondi all'inizio dell'applicazione, e li riprendi alla fine poi sottrai la seconda rilevazione dalla prima e ottieni quanti millesecondi è durato il programma...poi converti in secondi!

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    46
    ...non ci sto saltando fuori!

    facendo in questo modo:

    codice:
    	long inizio = System.currentTimeMillis();
    
            //algoritmo
    
            long fine = System.currentTimeMillis();
    	long time=(inizio-fine)/1000;
    		System.out.println(time + " sec");
    Facendo coì mi dà 0. Dove sbaglio?

  10. #10
    Semplicemente perchè devi fare
    codice:
    long time=(fine-inizio)/1000;
    e non il contrario!

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.