View Full Version : Efficienza programmi e bench
supermario
23-11-2006, 23:25
mi chiedevo se avete da proporre soluzione per monitorizzare i tempi di esecuzione di un programma, apportunamente tarato per fare molti calcoli e operazioni in memoria
in particolare(nel mio caso) qualcosa di implementabile universalmente in un programma scritto in C
ciauz
Che funzioni universalmente c'è solo la funzione time()...che ti ritorna il tempo in secondi...
Puoi benissimo fare la differenza fra due chiamate successive, ma ovviamente ha granularità al secondo.
supermario
24-11-2006, 12:41
infatti questo è quello che mi aveva detto il mio prof, ma io pensavo a qualcosa di + preciso...visto che non sono programmi complicatissimi
infatti questo è quello che mi aveva detto il mio prof, ma io pensavo a qualcosa di + preciso...visto che non sono programmi complicatissimitime() è una funzione "standard" ma è precisa al secondo. Gestire informazioni sul "tempo" in modo molto più preciso richiede l'utilizzo di funzioni specifiche del sistema operativo.
Su Windows si può usare la funzione Win32 GetTickCount() che ritorna il numero di millisecondi dall'avvio del sistema. Però non ha una granularità esatta del millisecondo ... qualcosa di più.
Altrimenti ci sono i "performance counter", ancora più precisi. Vedere le funzioni Win32 QueryPerformanceFrequency() e QueryPerformanceCounter().
ma io pensavo a qualcosa di + preciso...visto che non sono programmi complicatissimi
C'è, ma non è standard e dipende dal sistema operativo...
Mettere una funzioncina inline asm per leggere il registro rdtsc? Pero' mi sa che la portabilità non e' il suo forte.
Mettere una funzioncina inline asm per leggere il registro rdtsc? Pero' mi sa che la portabilità non e' il suo forte.Primo: RDTSC consente di leggere il time-stamp counter a 64 bit ma se non sai o non determini la frequenza di clock del processore, ti serve a molto poco.
Secondo: RDTSC è una istruzione "privileged". In modalità protetta, può essere eseguita solo se si è a "ring 0" (CPL 0) oppure se il bit TSD di CR4 è 0.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.