16-04-2008, 07:16 PM
الطريقة المستعملة من طرف الكاتب الأصلي وآخرين هي عبر الإجراء GetTickCount
أنظر SDK Help المرفق مع دلفي عند Win32 Developper's References
أو من موقع ميكروسوفت : http://msdn2.microsoft.com/en-us/library/ms724408.aspx
أظنها تنفع مع جميع لغات البرمجة ضمن Windows
هذا مثال أدرجه أحد المبرمجين
مع العلم أنه استعمل تكرار من 10000000 للحصول على قيمة قابلة للقياس، لأن GetTickCount ترجع قيمة milliseconds أي جزء من ألف جزء من الثانية (للعمليات الصغيرة قد ينتج 0)
وحسب المعالج processor فمثلا أحدهم قد يحصل على GTADD = 20 ms ، GTDIV = 30 ms بالنسبة للمثال أعلاه وآخر - مثلي - يحصل على GTADD = 15 ms ، GTDIV = 32 ms
.
أنظر SDK Help المرفق مع دلفي عند Win32 Developper's References
أو من موقع ميكروسوفت : http://msdn2.microsoft.com/en-us/library/ms724408.aspx
أظنها تنفع مع جميع لغات البرمجة ضمن Windows
هذا مثال أدرجه أحد المبرمجين
كود :
var GTADD, GTDIV : cardinal;
procedure .... ;
begin
GTADD := GetTickCount;
For N := 1 to 10000000 do X := 22 + 8;
GTADD := GetTickCount - GTADD;
GTDIV := GetTickCount;
For N := 1 to 10000000 do X := 22 / 8;
GTDIV := GetTickCount - GTDIV;
caption := format('Add=%d ms / Div=%d ms',[GTADD, GTDIV]);
end;مع العلم أنه استعمل تكرار من 10000000 للحصول على قيمة قابلة للقياس، لأن GetTickCount ترجع قيمة milliseconds أي جزء من ألف جزء من الثانية (للعمليات الصغيرة قد ينتج 0)
وحسب المعالج processor فمثلا أحدهم قد يحصل على GTADD = 20 ms ، GTDIV = 30 ms بالنسبة للمثال أعلاه وآخر - مثلي - يحصل على GTADD = 15 ms ، GTDIV = 32 ms
.

