Friend过程快于Public过程
来源:优易学  2010-1-15 15:40:18   【优易学:中国教育考试门户网】   资料下载   IT书店

  Public Sub PublicSub(ByVal value As Long) '

  End Sub

  Public Function PublicFunction(ByVal value As Long) As Long '

  End Function

  Friend Sub FriendSub(ByVal value As Long) '

  End Sub

  Friend Function FriendFunction(ByVal value As Long) As Long '

  End Function

  然后,在表单模块中创建一个循环,执行每个例程许多次。比如,要在一个Pentium II机器上查看执行时间上的区别,可以调用每个例程1,000,000次。下面是测试的结果:

  Private类模块中,反复调用1,000,000次Public Sub或者Function耗费了0.46秒,而调用内容相同的Friend类型模块则分别只有0.05秒和0.06秒。前后竟然相差了8-9倍之多!对于MultiUse类型的Public类模块,也是一样的结果。

  对于这个不可思议的结果的可能解释是:Friend型过程没有处理汇集和拆装代码的消耗(Public过程可以从当前工程外被调用,因此COM必须要来回地汇集数据)。

  但是在多数情况下,这些时间差别是不明显的,特别是程序中包含一些复杂和耗时的语句时。

  即使这样,Friend型过程仍有其他的优势高于Public类型,比如:接受和返回在BAS模块中定义的UDT变量的能力。

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训