[ de_c0der @ 03.01.2007. 08:50 ] @
Dal postoji neki program koji moze izmjerit (u milisekundama recimo) kolko je potrebno da se izvrsi neki program??

Znaci napises isti program na 2 nacina i onda izmjeris koji se brze izvrsava, ili pak isti program na isti nacin u 2 razlicita jezika, kompajlera itd..
[ morlic @ 03.01.2007. 12:06 ] @
Ajde da ti kazem kako da se napravi takav program, inace si promasio temu i smeska ti se cekaonica ;)

Napravis program koji kao parametar uzima putanju do nekog exe fajla. Zatim upamtis vreme startovanja, startujes program i na kraju kada se program zavrsi sa radom izracunas razliku u vremenu i prikazes na ekranu. Prilicno prosto, jedino sto je bolje ako mozes da iz samog programa meris izvrsavanje posla. Ovo moras da ponovis vise puta za svaki program kako bi Windows kesirao podatke sa diska, a procesor kesirao memoriju. Razlika izmedju prvog i recimo drugog, treceg startovanja moze biti velika.
[ de_c0der @ 03.01.2007. 12:33 ] @
To je tocnost ko da ti ne kazem sta... imam ja kod od ZEN TIMERA u asmu al nije to to... i jedna milisekunda puno znaci... a da ne govorim o kolicini aktivnih procesa, zauzecu memorije i sl.. najlakse SetTimer pa povecavat brojac na WM_TIMER poruku

lol
[ morlic @ 03.01.2007. 21:54 ] @
Pa sto ne kazes da ti treba nesto toliko brzo, mada i timestamp moze biti precizan do ukviru desetak milisekundi.

Evo ti malo literature:

http://msdn.microsoft.com/msdn...ues/04/03/HighResolutionTimer/

http://msdn2.microsoft.com/en-us/library/aa964692(VS.80).aspx

http://www.codeguru.com/Cpp/W-P/system/timers/article.php/c5759/

Ima jos takvih stvari, koristi g*.

Inace mozda ti treba neki profiler. Sa njim se dobija mnogo kvalitetnija i detaljnija slika izvrsavanja programa na nivou poziva procedura i funkcija a ne na nivou celog programa. Na taj nacin se mogu pronaci slabe tacke u algoritmima. itd.

Inace, nesto razmisljam. Ako je kod koji se izvrsava toliko brz da mu ni milisekunde nisu precizne za merenje, treba vestacki opteretiti kod kako bi moglo da se izmeri nesto razumno. Plus, racunaj da Windows nije realtime OS.


[ savkic @ 04.01.2007. 02:22 ] @
> Ima jos takvih stvari, koristi g*.

Mislim da je najprecizniji procesorski brojač ciklusa, relativno lako se koristi, trenutno stanje se očitava sa RDTSC iz inline asm. Pisano je o tome opširnije pre nekoliko meseci.