View Full Version : calcolo tempi di esecuzione
svitatissimo
29-12-2005, 18:05
Salve ragazzi devo fare un confronto tra algoritmi per quanto riguarda la misura dei tempi di esecuzione e vorrei farlo in java sapete dirmi come fare a valutare il tempo di esecuzione del programma?
Salve ragazzi devo fare un confronto tra algoritmi per quanto riguarda la misura dei tempi di esecuzione e vorrei farlo in java sapete dirmi come fare a valutare il tempo di esecuzione del programma?
ti faccio un esempio in c++
cmq devi usare il tempo:
for(int i=0; i<10000; i++){
//calcola il tempo per il ciclo
float newTime = time();
float dt = newTime - currentTime;
currentTime = newTime;
t += dt;
}
t è il tempo trascorso in secondi totali
for(int i=0; i<100; i++){
//calcola il tempo per il ciclo
float newTime = time();
float dt = newTime - currentTime;
currentTime = newTime;
t1 += dt;
}
t1 è il tempo trascorso in secondi totali
ora confronta t e t1
in Java:
long inizio = System.currentTimeMillis();
// qui fai la chiamata al metodo che devi misurare
long millis = System.currentTimeMillis()-inizio;
millis è misurato in millisecondi.
svitatissimo
02-01-2006, 18:58
ma in c++ il tempo calcolato è in secondi o millisecondi
? perchè a me servirebbe in millisecondi
ma in c++ il tempo calcolato è in secondi o millisecondi
? perchè a me servirebbe in millisecondi
fai così:
dwSecondi = (timeGetTime() - m_dwStartT) / 1000; //secondi
if(dwSecondi>0)
dwDecimi = (timeGetTime() - dwSecondi)% 10;
... ora avendo i secondi totali puoi ottenere anni, mesi, giorni, ore, secondi e millisecondi facendo gli opportuni calcoli.
per ottenere da subito i millisecondi puoi aggiungere ulteriormente sotto l'if e ancora fare:
dwCentesimi = (timeGetTime() - dwDecimi) % 100;//centesimi di secondo
dwMillesimi = (timeGetTime() - dwCentesimi) % 1000;//millesimi di secondo
... stampa i valori a video magari separati da un punto a 2 cifre peri sec 2 cifre per icentesimi e 3 cifre per i millesimi.
Edit: per azzerare fai:
if (dwSecondi>60){
dwSecondi=0;
m_dwStartT=0;
m_dwStartT = timeGetTime(); //time start secondi
}
p.s. dillo che ti devo dire tutto... e vaì!!
ciao e buon anno
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.