المشاركات : 201
المواضيع 60
:
: 0
الإنتساب : Oct 2009
السلام عليكم ورحمة الله وبركاته
كما نعلم ان سرعة في التنفيد هي من أهم الأمور التي يراعيها المبرمج ( السرعة = ربح الوقت )
وعلى هده المقدمة اطرح سؤالي :
كيف يمكنني قياس الزمن المستغرق في تنفيد تعليمات او دوال الى اخره ؟
مثلا كيف يمكنني قياس الزمن المستغرق في تنفيد هده التعليمة :
PHP كود :
for i:=0 to 10000 do
begin
a:=i+1;
end;
بارك الله فيكم وزادكم علما
كن متواضعا ولا تكن متكبرا // الصبر + المثابرة = النجاح
المشاركات : 219
المواضيع 24
:
: 16
الإنتساب : May 2009
باستخدام الأمر GetTickCount
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
t1, t2: cardinal;
i, a: integer;
begin
t1 := GetTickCount;
for i := 0 to 10000 do
begin
a := i + 1;
caption := IntToStr(i);
end;
t2 := GetTickCount - t1;
caption := IntToStr(t2) + ' MilliSeconds';
end;
أو الأمر MilliSecondSpan
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
وعليكم السلام ورحمة الله وبركاته
'آينشتاين' هنا ويسأل عن "قياس الزمن" 
هذا تابع يعيد النتيجة بالنمط: يوم/ساعة/دقيقة/ثانية.ميلي-ثانية
PHP كود :
function MSecToTime(mSec: Int64): string;
var
dt : TDateTime;
begin
dt := mSec / MSecsPerSec / SecsPerDay;
Result := Format('%d Day, %s Second', [Trunc(dt), FormatDateTime('hh:nn:ss.z', Frac(dt))]) ;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
t1, i: cardinal;
begin
t1 := GetTickCount;
i := 0;
repeat
Inc(I);
Caption := IntToStr(I);
until
I = 10000;
ShowMessage(MSecToTime(GetTickCount - t1));
end;
نشكر الأستاذ خالد الشقروني على مساهماته في المنتدى
جزاك الله خيرا أستاذ ونفع الله بعلمك
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
المشاركات : 201
المواضيع 60
:
: 0
الإنتساب : Oct 2009
السلام عليكم ورحمة الله وبركاته
بارك الله فيكم اخواني shagrouni و kachwahed والله جميل :thumbs:
إقتباس :'آينشتاين' هنا ويسأل عن "قياس الزمن"
اخي انشتاين مبتدئ في لغة الذلفي عندما يجمع كم من المعلومات سوف ترى من هو اقوى من انشتاين :crazy::crazy:
سلام والله انا سعيد بوجودكم معنا
كن متواضعا ولا تكن متكبرا // الصبر + المثابرة = النجاح
المشاركات : 219
المواضيع 24
:
: 16
الإنتساب : May 2009
19-03-2010, 10:59 AM
(آخر تعديل لهذه المشاركة: 19-03-2010, 11:27 AM بواسطة kachwahed.)
في دلفي 2010 توجد TStopwatch لغرض قياس الزمن، ولكن يجب الانتباه لبعض القضايا فيها.
راجع تقرير الثغرة:
كود :
http://qc.embarcadero.com/wc/qcmain.aspx?d=77628
المشاركات : 240
المواضيع 16
:
: 0
الإنتساب : Dec 2008
اخي الكريم هناك مايسمى بال Code Profiling يستعمل لهذا الغرض .
حاول مثلا استعمال :
prodelphi هو تقريبا الاكثر استعمالا .
PHP كود :
http://www.prodelphi.de/indexpd.htm
ولكن هناك شئ يجب الانتباه له و اظن ان اغلب المبرمجين و حتى المحترفين يهملون اشياء بسيطة و منها :
ال Hints و ال Warnings اثناء عملية ال Compiling . ولهذا المبرمج يجب عليه تنقيح الكود من ال :
Hints و ال Warnings .
فهنالك Profilers لايمكنه القيام بال Code Profiling حتى و لو وجد Hint واحدة فمابالك بال warning .
قبل البدء في عملية القياس او ال Code profiling حاول قدر المستطاع تنقيح الكود من ال Hints و ال Warnings .
و السلام عليكم .
المشاركات : 240
المواضيع 16
:
: 0
الإنتساب : Dec 2008
نسيت ان اذكر فقط ان من بين احسن ال Code Profilers هو :
AQtime
PHP كود :
http://www.automatedqa.com/products/aqtime/
ولكن هذا ال Code Profiler لايقبل وجود ال Hints او Warnings عند القيام بعملية الحساب او ال Code Profiling