如何在delphi7中,测试一段代码的执行时间?
procedure(........................)vartime:Cardinal;begintime:=GetTickCount;//begin的下...
procedure (........................)
var
time: Cardinal;
begin
time := GetTickCount;//begin的下一行
需要测试的代码。。。。。。。。。。。。。
time := GetTickCount - time;//end的上一行
end;
但是侧不出来值,要不是值是那种随机数,要不就是time没有值,能说下,具体用法?什么环境中才能测吗? 展开
var
time: Cardinal;
begin
time := GetTickCount;//begin的下一行
需要测试的代码。。。。。。。。。。。。。
time := GetTickCount - time;//end的上一行
end;
但是侧不出来值,要不是值是那种随机数,要不就是time没有值,能说下,具体用法?什么环境中才能测吗? 展开
展开全部
给你个最简单的方法
放一个 timer控件 一个edit edit默认内容0 然后双击timer控件 timer1.interval=1000; 1000毫秒执行一次 =1秒执行一次
procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.Text:=inttostr(strtoint(edit1.Text)+1);
end;
默认timer1.enabled:=fales;
需要记时的时候timer1.enabled:=true;
需要停止的时候 timer1.enabled:=fales;
没有编译器 应该没问题
edti1里的内容就是运行时间啦 很简单的一个原理 有不会+QQ448912 希望给分
放一个 timer控件 一个edit edit默认内容0 然后双击timer控件 timer1.interval=1000; 1000毫秒执行一次 =1秒执行一次
procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.Text:=inttostr(strtoint(edit1.Text)+1);
end;
默认timer1.enabled:=fales;
需要记时的时候timer1.enabled:=true;
需要停止的时候 timer1.enabled:=fales;
没有编译器 应该没问题
edti1里的内容就是运行时间啦 很简单的一个原理 有不会+QQ448912 希望给分
展开全部
随机数?那不就是执行时间么?单位是毫秒。
代码没有问题,要不就GetTickCount精准度还不够,可以适当增加测试的代码,或者用CPU时间戳,这个精度更高。反正最终返回的time就是所花的时间
代码没有问题,要不就GetTickCount精准度还不够,可以适当增加测试的代码,或者用CPU时间戳,这个精度更高。反正最终返回的time就是所花的时间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
BeginCount,Endcount,StartCount:Cardinal;
BeginCount:=GetTickCount;{获取系统启动的时间}
//执行的代码
Endcount:=GetTickCount;
F('分词耗时' + IntToStr(Endcount - BeginCount) + '毫秒');
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个用法没有问题,可能是你的被测试代码修改了time的值了,gettickcount是可以测到毫秒的,应该能满足要求。如果你的待测代码时间太短,有可能测出来是0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码开始时读取当前tick值,gettickcount64,结束再取一次gettickcount64,相减就可以知道执行时间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询