Delphi函式呼叫效率測試

2021-06-01 20:05:53 字數 392 閱讀 1742

delphi在給函式傳參的時候,可以在引數前加上var、const、out做修飾,或者也可以使用指標引數。這幾種方式的應用場景都很清晰了,但是他們的執行效率有什麼差別呢?為此我做了乙個測試,定義乙個整數陣列aints: array[0..10000] of integer;並將其作為引數傳給乙個空函式。迴圈呼叫這個函式十萬次。消耗時間如下:

引數型別 

var型別引數

out型別引數

const型別引數

指標型別引數

無修飾引數

消耗時間

590ms

而且前四個都是按位址傳遞的,即子函式與父函式都指向同乙個變數。因此效率很快,而第五種情況則進行了拷貝,浪費了時間。對於頻繁呼叫的函式來說,不建議使用無修飾引數型別,尤其是大陣列或大結構體。

C呼叫lua指令碼的效率測試

include extern c lua直譯器指標 const char lua script function loop add a,b local sum 0 for i 1,10000000 do sum sum a b end return sum end function add a,b ...

C呼叫lua指令碼的效率測試

c呼叫lua指令碼的效率測試 以下 以c語言為基準,測試了c呼叫lua迴圈和迴圈呼叫lua的效率。結論是不要頻繁地穿越c lua邊界.include extern c lua直譯器指標 const char lua script function loop add a,b local sum 0 f...

C呼叫lua指令碼的效率測試

c呼叫lua指令碼的效率測試 以下 以c語言為基準,測試了c呼叫lua迴圈和迴圈呼叫lua的效率。結論是不要頻繁地穿越c lua邊界.include extern c lua直譯器指標 const char lua script function loop add a,b local sum 0 f...