|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2007
Messaggi: 112
|
[C++]: misuare prestazioni algoritmi
Salve devo fare dei test sperimentali su un algoritmo e misuare i tempi al variare dei paramtri solo che utilizzando:
Codice:
start = clock(); //---> Algoritmo da misurare end = clock(); tempo=((double)(end-start))/CLOCKS_PER_SEC; cout << "\n...tempo di ricerca: " << tempo << endl << endl; c'è qualche metodo che posso misuare anche i tempi del tipo 0.004? |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
Quote:
Codice:
tempo=(double)(end-start)/CLOCKS_PER_SEC;
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jan 2007
Messaggi: 112
|
no il risultato non è cambiato.
In effetti sto misurando le prestazioni di un dizionario che ho implementato con il metodo hash table ad indirizzamento aperto, quando carico la lista di 300000 termini essendo i tempi maggiori di 1 secondo il tempo lo misira correttamente, ma le operazioni di ricerca sono talmente veloci che mi da sempre tempo = 0. io dovrei verificare i tempi di search hit e search miss cambiando il fattore di carico della tabella. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jan 2007
Messaggi: 112
|
i tempi start ed end sono uguali sia per un search hit che un search miss sulla stessa parola inserita...
inserito elicottero parola trovata start : 17500 end: 17500 inserito elicotero parola non trovata start : 88609 end: 88606 questo con un fattore di carico alpha 1/2. provando con un fattore 1 riesco a vedere la differenza soltanto in una serach miss di 0.002 ma la serach hit è sempre 0. quindi il calcolo del tempo lo fa bene ma io vorrei annotare sui test sperimentali che sto facendo anche oscillazioni minime prossime allo zero.. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Eh ci credo, lo fai su una sola operazione, è normale che siano uguali, devi farlo su un numero molto grande di operazioni, poi puoi fare la media.
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Jan 2007
Messaggi: 112
|
quindi quando carico i termini dal file di testo ci mette all'incirca 3.5 secondi e qui fa 290000 inserimenti....quindi i test li posso fare al momento del caricamento. giusto?
io invece volevo misurarlo su una singola operazione... e questa cosa non è possibile. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Attenzione che il caricamento è anche vincolato dalla lettura dei valori dal file. Dovresti prima mettere tutto il file in memoria, fai partire il timer e dopo li carichi.
E' possibile, ma devi fare tante ricerche e poi fare la media. Con i valori del file caricati in memoria puoi fare tutte le ricerche che vuoi anche in modo casuale. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:55.