Size: a a a

2021 May 28

S

Snusmumriken in pro.lua
Но на всякий случай напоминаю, что это делается вот так. А с мемоизацией и кешированием — и того быстрее при частом использовании.
источник

IS

Ivan Stepanov in pro.lua
Это jit?
источник

S

Snusmumriken in pro.lua
Это итеративный фибоначчи + jit ))
источник

TS

Timur Safin in pro.lua
источник

S

Snusmumriken in pro.lua
О, кстати хвостовая рекурсия отсюда кажись работает.
источник

S

Snusmumriken in pro.lua
Лол кек чебурек
источник

S

Snusmumriken in pro.lua
Сейчас ещё дам результаты 5.1 без JIT, когда посчитает )
источник

S

Snusmumriken in pro.lua
Всё, лень ждать. Где что сам найдёшь.
Результаты показаны так:
обычный:хвостовой

Я их правда одновременно гонял, так что результаты время от времени прыгают. Но суть в другом.
источник

IS

Ivan Stepanov in pro.lua
Да блин, всё равно мы знали, что тестируем 2^n
источник

S

Snusmumriken in pro.lua
Карочи, сунь своим ребзям вот это, чтобы хвостовая рекурсия пахала. И пусть нюхают пуки.

function tfib(n)
 local f
 function f(a, b, n)
   if n < 3 then
     return b
   else
     return f(b, a + b, n - 1)
   end
 end

 return f(1, 1, n)
end

А лучше —
local f
function f(a, b, n)
 if n < 3 then
   return b
 else
   return f(b, a + b, n - 1)
 end
end

function tfib(n)
 return f(1, 1, n)
end

Время не будет тратиться даже на генерацию функции.
источник

IS

Ivan Stepanov in pro.lua
А если это на сях написать, скомпилить c -Os и скормить в Wasm3?))
источник

S

Snusmumriken in pro.lua
Мне лень )
источник

IS

Ivan Stepanov in pro.lua
Просто получится так, что мы ускорили фиб в Lua, Wasm и нативе, но не ускорили сам Lua
источник

S

Snusmumriken in pro.lua
Мм. Ты не понял.
источник

S

Snusmumriken in pro.lua
Зависит от устройства самой хвостовой рекурсии в луях и в компиле-интерпретаторах wasm.
источник

S

Snusmumriken in pro.lua
Если там работает хвостовая рекурсия в несколько более расширенном виде, так что даже ваша наивная реализация фибоначчей её подтягивает, то нет смысла сравнивать с такой же наивной реализацией луёв, потому что тут данная фича не была использована.
источник

S

Snusmumriken in pro.lua
Всё равно что все бегут кросс, но луа вы запихнули в противогаз.
источник

IS

Ivan Stepanov in pro.lua
Чё-то сложное и интересное, попробую твой код. Спасибо
источник

S

Snusmumriken in pro.lua
Есть смысл что-то сравнивать только в том случае, если везде использован один и тот же набор фич, вроде той же самой поддержки той же самой хвостовой рекурсии. В противном случае, то где активировано больше фич — то и быстрее.
источник

S

Snusmumriken in pro.lua
Ещё интереснее становится когда что-то не поддерживает фичи, использованные в другом. Если васм не поддерживает хвостовую рекурсию в принципе — очень жаль ((
источник