Delphi 匿名函数的几个实际应用(二)

Timing Anonymous Methods 计时功能匿名函数

 

 

 

开发者们经常需要添加计时代码到一个已有的常规过程中,比较他们的相关速度。前面例子已经使用了几次实例,指出Uncode字符执行速度。对比两个代码片段,比较他们的执行毫秒数,妳可以写出下面内容(在本书第二章的“转换字符”例子):

 

 

 

为了避免多次重复计时代码,妳可以写一个调用计时函数,通过无参方式的匿名方法调用代码片段:

 

 

 在下面例子妳可以发现一个更轻巧(也更精确的)版本,使用GetTickCount可以而不是以Now函数。虽然你可能寻找更精确计时服务QueryPerformanceCounter API。

 

 

执行标准版本的和依赖匿名方法的将获得如下结果:

 

Classic
AnsiUpperCase (string): 00:00.588
AnsiUpperCase (AnsiString): 00:01.087
Anonymous
AnsiUpperCase (string): 00:00.644
AnsiUpperCase (AnsiString): 00:01.153

 

 

 就像你所看到的,匿名方法版本的差异8%。是因为直接执行本地代码,程序使用了虚方法调用到匿名函数的实现。这些不同还体现在,测试代码使用更好的方式。如果需要在代码中用squeeze性能,使用匿名方法,妳不能到直接方式的代码,使用直接函数调用那么快。使用方法指针将可能需要在性能的取舍中权衡。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值