我一直認為 LUA(5.1 版)中的鏈接函式比先本地化然后呼叫下一個函式的性能更差。
是我錯了還是我的簡單基準不正確?
local clock = os.clock
local plugin = {}
function plugin:Test()
return { SubTest = function() return "hello" end }
end
collectgarbage(); collectgarbage()
local start = clock()
for i=1, 1000000 do
plugin:Test():SubTest()
end
print(clock() - start, collectgarbage("count") / 1024)
collectgarbage(); collectgarbage()
local start = clock()
for i=1, 1000000 do
local module = plugin:Test()
module:SubTest()
end
print(clock() - start, collectgarbage("count") / 1024)
uj5u.com熱心網友回復:
LUA 中的鏈接函式比先定位然后呼叫下一個函式的性能更差
僅當您多次使用本地(快取)值時,這才是正確的。
我的簡單基準不正確嗎?
基準測驗中的兩個回圈都被編譯為(幾乎)相同的 Lua 位元組碼,因此它們的性能必須相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/381003.html
上一篇:非常慢的內連接查詢
