您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-12 原文发表:2007-08-31 人气:34 来源:未知

你可能会非常惊奇:Friend类型过程的执行速度要明显快于Public类型。这可以通过创建一个带有Private类和Public类 (设定Instancing = MultiUse)的ActiveX EXE工程看到,在2个类模块中添加下面的代码:

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变量的能力。

相关文章

字体对象克隆招法
如何去优化你的VB程序
VB“变态”用法之高效字串指针类
Visual Basic代码优化的六条军规
使用Objptr函数快速查找集合中的对象
使用ObjPtr检测2个对象变量是否指向同一对象
重定义编译DLL文件的基地址
你真正理解 Allow Unrounded Floating Poin
固定长度字符串数组:赋值快,释放快!
快速清除数组部分内容
如何编写高质量的VB代码
提高Visual Basic访问数据库效率
在数据库中不用 EOF 以加快记录循环
提高Visual Basic访问数据库的效率
VB“超频”秘籍之给字符串提速
读取文件内容的简洁方法
快速调入TreeView控件以及ListView控件的子
Visual Basic 高级编程及其项目应用开发

相关评论


本文章所属分类:首页 VB

  热门关键字: