Поскольку у нас есть несколько мастеров программирования, я решил спросить вас, ребята, вместо того, чтобы пытаться угадать.
В свои дни я провел много оптимизаций, и в большинстве В таких случаях такой уровень оптимизации был бы совершенно ненужным.
Однако я не уверен, почему метод 1, см. ниже, примерно в 2-2,5 раза быстрее, чем метод 2, см. ниже. Я ожидал бы, что, поскольку функция X метода 2 содержит функцию Y, она будет по крайней мере такой же быстрой, если не быстрее, чем метод 1, где обе функции разделены.
В чем причина того, что метод 1 был значительно быстрее, чем метод 2? Это какая-то оптимизация компилятора?
-- METHOD 1:
local function Y()
return true
end
local function X()
Y()
return true
end
local getTimer = system.getTimer
local startTime = getTimer()
local iterations = 1000000
for i = 1, iterations do
X()
end
print( "TIME:"..(getTimer()-startTime) )
-- METHOD 2:
local function X()
local function Y()
return true
end
Y()
return true
end
local getTimer = system.getTimer
local startTime = getTimer()
local iterations = 1000000
for i = 1, iterations do
X()
end
print( "TIME:"..(getTimer()-startTime) )