пытаясь увидеть, сколько времени требуется скрипту Lua до завершения sh выполнения - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь сделать так, чтобы мой Lua скрипт сообщал мне, сколько времени прошло, пока весь скрипт не был выполнен, по причинам улучшения

Я пробовал использовать такие функции, как os.clock(), os.time() и os.difftime() бесчисленными способами по целому rnet для достижения этого результата, но они всегда возвращают 0 в конце. Кто-нибудь знает, как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 03 августа 2020
local before = os.clock()

for i=1,1e6 do
   local double = i*2
end

local after = os.clock()

print(string.format("Loop took %0.6f seconds to run", after - before)
0 голосов
/ 05 августа 2020

Обратите внимание, что os.clock недостаточно точен для очень коротких операторов / скриптов. Вот почему, как указал DarkWiiPlayer, хорошо запускать код несколько раз. Если вы хотите поговорить об оптимизации, то мы должны упомянуть профилирование. Некоторое время назад go я сделал профилировщик, используя чистый Lua, и вы можете использовать его: https://bitbucket.org/itraykov/profile.lua/src/master/ При профилировании вы можете увидеть, какие части кода выполнялись дольше всего.

0 голосов
/ 03 августа 2020

Если интервал слишком короткий, просто запустите фрагмент несколько раз, пока не получите значимое число производительности.

Например, Python s timeit s autorange функциональность работает функция должна быть рассчитана столько раз, сколько требуется, чтобы эталонный тест длился не менее двух секунд.

Таким образом вы получите два числа; n, сколько итераций кода вы фактически выполнили, и t, время (в секундах), которое потребовалось для их выполнения. Тогда n / t будет итераций в секунду, а t / n * 1000 миллисекунд на итерацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...