只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的Friend过程快于Public过程,手机电脑控们准备好了吗?一起看过来吧!
【 tulaoshi.com - 编程语言 】
你可能会非常惊奇:Friend类型过程的执行速度要明显快于Public类型。这可以通过创建一个带有Private类和Public类(设定Instancing=MultiUse)的ActiveXEXE工程看到,在2个类模块中添加下面的代码:
PublicSubPublicSub(ByValvalueAsLong)
'
EndSub
PublicFunctionPublicFunction(ByValvalueAsLong)AsLong
'
EndFunction
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)FriendSubFriendSub(ByValvalueAsLong)
'
EndSub
FriendFunctionFriendFunction(ByValvalueAsLong)AsLong
'
EndFunction
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)然后,在表单模块中创建一个循环,执行每个例程许多次。比如,要在一个PentiumII机器上查看执行时间上的区别,可以调用每个例程1,000,000次。下面是测试的结果:
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)Private类模块中,反复调用1,000,000次PublicSub或者Function耗费了0.46秒,而调用内容相同的Friend类型模块则分别只有0.05秒和0.06秒。前后竟然相差了8-9倍之多!对于MultiUse类型的Public类模块,也是一样的结果。
对于这个不可思议的结果的可能解释是:Friend型过程没有处理汇集和拆装代码的消耗(Public过程可以从当前工程外被调用,因此COM必须要来回地汇集数据)。
但是在多数情况下,这些时间差别是不明显的,特别是程序中包含一些复杂和耗时的语句时。
即使这样,Friend型过程仍有其他的优势高于Public类型,比如:接受和返回在BAS模块中定义的UDT变量的能力。
->来源:http://www.tulaoshi.com/n/20160219/1621030.html
看过《Friend过程快于Public过程》的人还看了以下文章 更多>>