Friend过程快于Public过程
' Public Sub PublicSub(ByVal值为Long)'
末端接头
公共函数public Function(ByVal value As Long)As Long '
结束功能
' Friend Sub FriendSub(ByVal值为Long)'
末端接头
友元函数FriendFunction(ByVal值为Long)为Long '
结束功能
然后,在表单模块中创建一个循环,并多次执行每个例程。例如,要查看Pentium II机器上执行时间的差异,您可以调用每个例程1,000,000次。以下是测试结果:
在私有模块中,重复调用公共Sub或函数100万次需要0.46秒,而调用相同内容的朋友模块只需要0.05秒和0.06秒。前后相差8-9倍!多用途类型的公共类模块也是如此。
对于这种不可思议的结果,可能的解释是:友元型进程不处理组装和反汇编代码的消耗(公共进程可以从当前项目外部调用,所以COM要来回组装数据)。
但在大多数情况下,这些时间差并不明显,尤其是当程序包含一些复杂耗时的语句时。
即便如此,友元进程相对于公共进程还有其他优势,比如能够接受和返回BAS模块中定义的UDT变量。
0条评论