Комментарии 9
Судя по бенчмаркам, LuaJIT быстрее V8 JavaScript...
Все бенчмарки подобного рода - мусор.
Разница иногда в 10 раз, Lua уходящая в "timeout", ну и местами мягко говоря неодинаковый код (например JS worker-threads против обычной Lua), кароче не вериться.
Peak-mem у Lua в 2-10 раз ниже, то есть вполне возможно, что у Lua большая часть времени ушла на сборку мусора, а условный "default-heap-size" просто забыли настроить. Ну и смысл от таких сравнений.
Ну да, массивы с единицы - для инженеров нефтяников. А остальной синтаксис и метатаблицы, это для них просто ничто. Логика.
Тоже никогда не понимал, почему Lua считается простым языком. Можно относительно быстро объяснить человеку, что такое классы, экземпляры, и как ими пользоваться для моделирования реальных объектов. А вот чтобы дать ему этот же инструмент в Lua, ему сначала придется рассказать про метатаблицы и прототипное наследование.
А потом ему еще и придется самому написать себе пару библиотек, вместо того чтобы написать их название в requirements.txt
Язык-то для встраивания.
Инженеру-нефтяннику не нужно знать классы, но свои объекты он получит, когда будет пользоваться софтом, в котором эти классо-объекты уже есть.
А вот механизм простейших классов, например, примерно такой:
local MyClass = {}
MyClass.__index = MyClass
function MyClass:new(a, b, c)
self = setmetatable({}, self)
self.a, self.b, self.c = a, b, c
return self
end
function MyClass:foo()
return self.a + self.b + self.c
endМожно особенно не объяснять, и просто предоставить инженеру как сниппет, или выдать ему библиотеку предоставляющую простейшую функцию-классогенератор
MyClass = Class{
new = function() ... end,
foo = function() ... end
}Он с ним справится, я гарантирую.
Гляньте этот тестовый пакет Lua Microbenchmarks : https://github.com/numas13/luajit-microbenchmarks
И интересное: https://github.com/helce/LuaJIT/blob/v2.1/src/vm_e2k.dasc
https://github.com/helce/LuaJIT/blob/v2.1/dynasm/dasm_e2k.lua
Информация
- Сайт
- tech.vk.com
- Дата регистрации
- Численность
- 1 001–5 000 человек
- Местоположение
- Россия
- Представитель
- Евгений Левашов
LuaJIT: что делает его таким производительным и почему вам стоит его попробовать