מדידת זמן ריצה

zamorano

New member
מדידת זמן ריצה

איך אני יכול למדוד זמן ריצה של תוכנית (משהו בסדר גודל של מילי שניות)? האם יש הבדל בשיטה בין unix ל windows ? הזמן הוא בסדר גודל של msec (מילי שנייה)
 

אלדד28

New member
אתה יכול להשתמש בפונקציות

שנותנת לך מערכת ההפעלה, כמו timeGetTime או GetTickCount, בתחילת ובסוף התוכנית.
 

Zack DA

New member
יש לך פקודות shell שעושות את זה.

תלוי על איזו מערכת אתה עובד. קרא בתיעוד.
 

zamorano

New member
...../images/Emo60.gif

מממ.. ברור לי שיש פקודות שעושות את זה אך אני מנסה ללמוד מנסיונם של אחרים
בגלל זה יש פורום לא
אם מישהו נתקל בבעיה כזו (מדידת זמנים) אשמח אם יוכל לומר לי איך עושים זאת ב unix\linux
 

eyalbd

New member
בלינוקס זה יותר ישיר

הפקודה time תמצע זאת בשבילך למשל:
$time program 1.84user 0.01system 0:02.07elapsed 90%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (229major+19minor)pagefaults 0swaps​
 

annefan

New member
מתוך התוכנית או מחוץ לה?

אם אתה רוצה מדידה מתוך התוכנית, אתה יכול להשתמש בזה:
#include <ctime> class Timer { clock_t timestart_; clock_t timestop_; public: Timer() : timestart_(NULL), timestop_(NULL){}; virtual ~Timer(){}; void start() { timestart_ = clock(); } void stop() { timestop_ = clock(); } double diff() { double diff = (double)(timestop_ - timestart_)/CLOCKS_PER_SEC; return diff; } };​
שים את המחלקה ב-header file, ותכליל אותו בקובץ בו אתה רוצה להשתמש בו. צור אוביקט Timer, ואז השתמש ב-start, stop ו-diff . בהצלחה.
 
למעלה