Friend过程快于Public过程

jixiang9967

jixiang9967

2016-02-19 19:27

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的Friend过程快于Public过程,手机电脑控们准备好了吗?一起看过来吧!

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

PublicSubPublicSub(ByValvalueAsLong)

'

EndSub

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

PublicFunctionPublicFunction(ByValvalueAsLong)AsLong

'

EndFunction

FriendSubFriendSub(ByValvalueAsLong)

'

EndSub

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

FriendFunctionFriendFunction(ByValvalueAsLong)AsLong

'

EndFunction

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

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

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

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

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

->

展开更多 50%)
分享

猜你喜欢

Friend过程快于Public过程

编程语言 网络编程
Friend过程快于Public过程

受孕过程

受孕过程
受孕过程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

存贮过程

ASP
存贮过程

顺产过程

顺产过程
顺产过程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

怀孕过程

电脑网络
怀孕过程

怀孕过程解析

电脑网络
怀孕过程解析

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

提高VisualBasic访问数据库效率

提高VisualBasic访问数据库效率

Liferay中整合tinyMCE详解

Liferay中整合tinyMCE详解
下拉加载更多内容 ↓