Сравнительный анализ Lua

Я хочу протестировать некоторые Lua без использования внешних зависимостей. В настоящее время я использую os.clock:

local function dummy() end
local start = os.clock()
for i=1,n do dummy() end -- loop/call overhead
local overhead = os.clock() - start
local start = os.clock()
for i=1,n do f() end
local time = os.clock() - start - overhead

Это правильный способ сделать бенчмаркинг в Lua? Есть ли лучший/более точный способ проведения бенчмаркинга в Lua?


person SoniEx2    schedule 19.06.2018    source источник
comment
Не по теме, потому что запрашиваются сторонние ресурсы. Во всяком случае, я нашел ProFi и luatrace.   -  person Henri Menke    schedule 19.06.2018
comment
@HenriMenke Нет, нет.   -  person SoniEx2    schedule 19.06.2018
comment
Вроде хороший способ. Вы также можете попробовать код с сайта lua-users.org/wiki/ObjectBenchmarkTests.   -  person MysteryPancake    schedule 19.06.2018


Ответы (1)


См. раздел Программирование на Lua: профили. Там сам создатель Lua (Роберто Иерусалимский) предостерегает от использования отражения Lua (доступ во время выполнения к внутренним операциям Lua) для точного профилирования. Что касается профилей синхронизации, он говорит:

Для профиля с синхронизацией лучше использовать интерфейс C: накладные расходы на вызов Lua для каждого хука слишком велики и обычно делают недействительными любые меры.

Прочтите весь раздел, чтобы лучше понять контекст и глубже взглянуть на отражение Lua.

person brianolive    schedule 20.06.2018