-
יש לי שני קטעי קוד שונים (שפת C) שעושים אותה מטרה.
איך אני יכול לבדוק מה יותר יעיל ומהיר? -
@searchnicks זה מיחשוב נטו? או שיש משתנים צדדיים שיכולים להשפיע על המהירות? כמו מהירות IO?
-
@searchnicks אתה בווינדוס או בלינוקס?
-
הסיפור הוא שאני ועוד חבר כתבנו קוד למטרה מסויימת.
והתעורר וויכוח איזה קוד יותר יעיל.האם יש כלים לאבחן את זה?
-
משהו כזה:
#include <windows.h> #include <stdio.h> void main() { // https://docs.microsoft.com/en-us/windows/win32/sysinfo/acquiring-high-resolution-time-stamps LARGE_INTEGER StartingTime, EndingTime, ElapsedMicroseconds; LARGE_INTEGER Frequency; int i; QueryPerformanceFrequency(&Frequency); QueryPerformanceCounter(&StartingTime); for (i = 0; i < 100; i++) { // your code } QueryPerformanceCounter(&EndingTime); ElapsedMicroseconds.QuadPart = EndingTime.QuadPart - StartingTime.QuadPart; ElapsedMicroseconds.QuadPart *= 1000000; ElapsedMicroseconds.QuadPart /= Frequency.QuadPart; printf("My code runs in %i microseconds", ElapsedMicroseconds.QuadPart / 100); QueryPerformanceCounter(&StartingTime); for (i = 0; i < 100; i++) { // his code } QueryPerformanceCounter(&EndingTime); ElapsedMicroseconds.QuadPart = EndingTime.QuadPart - StartingTime.QuadPart; ElapsedMicroseconds.QuadPart *= 1000000; ElapsedMicroseconds.QuadPart /= Frequency.QuadPart; printf("His code runs in %i microseconds", ElapsedMicroseconds.QuadPart / 100); }
נ. ב. אני לא כותב C, (מכיר קצת אבל לא יותר מזה). ברור שהקומפיילר היה צורח על הקוד שלי, אבל כתבתי אותו בלי לשאול את הקומפיילר לדעתו... האחריות עליך לאתר ולתקן את השגיאות...
-