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...