程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> Friend過程快於Public過程

Friend過程快於Public過程

編輯:VB綜合教程

你可能會非常驚奇:Friend類型過程的執行速度要明顯快於Public類型。這可以通過創建一個帶有Private類和Public類(設定Instancing=MultiUse)的ActiveXEXE工程看到,在2個類模塊中添加下面的代碼:

PublicSubPublicSub(ByValvalueAsLong)

'

EndSub

PublicFunctionPublicFunction(ByValvalueAsLong)AsLong

'

EndFunction

FriendSubFriendSub(ByValvalueAsLong)

'

EndSub

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必須要來回地匯集數據)。

但是在多數情況下,這些時間差別是不明顯的,特別是程序中包含一些復雜和耗時的語句時。

即使這樣,Friend型過程仍有其他的優勢高於Public類型,比如:接受和返回在BAS模塊中定義的UDT變量的能力。

->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved