2013-03-26 35 views
4

在TdwsUnit中註冊函數的性能是否與常規魔術函數(例如在dwsMathComplexFunctions.pas單元中註冊的函數)相同?TdwsUnit性能

+0

什麼是TdwsUnit?它是第三方圖書館嗎?如果是這樣,詢問圖書館供應商。我不認爲你的問題屬於這裏。 – 2013-03-27 06:49:34

+0

@RawN TdwsUnit是DWScript庫中的一個組件/類 – 2013-03-27 07:36:19

+1

@RawN如果關於第三方庫的每個問題都被忽視了,那麼SO將會是一個孤獨無聊的地方。 – 2013-03-27 09:32:31

回答

2

一般無,因爲TdwsUnit函數和方法的OnEval事件得到充分的舒適&安全的治療方法:

  • 調用參數進行評估,並壓入堆棧
  • 一個TProgramInfo/IInfo上下文做出存取,以便您獲得舒適訪問由名稱變量,可以依次調用一切腳本舒適
  • 你的執行是由異常幀保護

相比之下,魔術功能卻沒有這些功能:它們只是獲取參數表達式的列表,就這些了。沒有堆棧上下文,不容易訪問其他任何東西,所以您需要評估參數並處理所有事情。這使得它們更適合於需要快速發生的簡單任務。

請注意,除了OnEval之外,TdwsUnit中的一些函數現在正在獲取OnFastEval事件,這是聲明魔術函數的替代方法。