テーブルは極力作らない

function addVect1(vectA, vectB) -- 加算が 2 回、テーブルコンストラクトが 1 回。
   return {vectA[1] + vectB[1], vectA[2] + vectB[2]}
end
function addVect2(vectA, vectB) -- 加算が 2 回、代入が 2 回。
   vectA[1] = vectA[1] + vectB[1] 
   vectA[2] = vectA[2] + vectB[2]
   return vectA
end



do
local addVect1 = addVect1
local a = {10, 10}
local b = {10, -10}
local c
local start = timer.getMilliSecCounter()
for i = 1, 500000 do
   c = addVect1(a, b)
end
print(timer.getMilliSecCounter() - start)
end

do
local addVect2 = addVect2
local a = {10, 10}
local b = {10, -10}
local c
local start = timer.getMilliSecCounter()
for i = 1, 500000 do
   c = addVect2(a, b)
end
print(timer.getMilliSecCounter() - start)
end

f:id:ti-nspire:20170817215826p:plain


参考:


, p.289-290