Viacheslav
Даже без JIT?
Snusmumriken
А в частных случаях - в несколько сотен раз быстрее 5.2.
Snusmumriken
Луаджит без JIT - не очень джит ))
Viacheslav
Ну вот поэтому я и спросил, ибо нормальных цифр со сравнением не нашёл. Кто-то говорит, что всё равно раза в три быстрее.
Snusmumriken
Возможно, вопрос в том, имеется ли поддержка у луажыта на данной платформе - в плане, напишет ли Майк Пол ответ по косяку, если он обнаружится.
Snusmumriken
Viacheslav
Snusmumriken
Пойду напишу свой джыт ))
Правда, у 5.1 и так всё весьма неплохо с самим языком, его можно особо не развивать. А вот объём супер-качественных сторонних либ - подкачал, да.
Viacheslav
Либы меня не интересуют, у нас использование довольно специфическое, свои привязки для всего, что нужно.
Snusmumriken
Зачем вам в принципе луа? Что собрались делать? Секрет бизнес-плана?
Viacheslav
Нет, у нас в Блумберге используется в фреймворке для генерации отчётности. Чисто для описания абстракций типа "возьми три физических поля из базы и преобразуй в одно логическое".
Viacheslav
Поэтому оно должно молотить как можно быстрее, вот и всё.
Viacheslav
JIT потом будет, когда всё на Linux переползёт.
Snusmumriken
А, нормуль. А вместо платформы что? Просто luajit есть почти везде, и на ARM, и на x86 и на MIPS. Было бы странно найти какую-то особую платформу, где оно не работает.
Молотилки - это не проблема ни для чего, если у вас есть биндинг на сишные функции, которые производят конкретное молочение, а луа типа только запускает нужный сценарий и только решает логику поведения.
Viacheslav
Viacheslav
Пока что поддерживаются на уровне с Linux, иначе давно бы LuaJIT туда впихнул.
Snusmumriken
Snusmumriken
Спарки у нас - или на x86 или на PPC, помнится.
Viacheslav
Спарк не поддерживает 64 бит jit, насколько я помню.
Viacheslav
В итоге вся малина лесом идёт.
Snusmumriken
А чего, вам в луях надо хранить терабайты данных, или просто типа вся база - 64-битная?
Viacheslav
Весь код 64 бита, потому что там кешей в процессе полно.
Viacheslav
Ладно, будем пробовать, спасибо. Главное, что ванильный 5.1 не был медленнее, чем 5.2.
Snusmumriken
Viacheslav
Хорошо, тогда попробую прикрутить и померить.
Snusmumriken
Даже для того чтобы 5.1 быстрее скрипты грузил, под эту версию переписывали синтаксический анализатор на кастомный ))
Помнится, именно под неё.
Viacheslav
А, нормуль. А вместо платформы что? Просто luajit есть почти везде, и на ARM, и на x86 и на MIPS. Было бы странно найти какую-то особую платформу, где оно не работает.
Молотилки - это не проблема ни для чего, если у вас есть биндинг на сишные функции, которые производят конкретное молочение, а луа типа только запускает нужный сценарий и только решает логику поведения.
Оно именно так и работает, все вычисления на стороне C++, но всё равно, когда в отчёте 170 колонок и под миллион строк, то чем быстрее, тем лучше.
Snusmumriken
Попробуй ещё собрать x64-luajit под PPC, оно вроде есть.
> в отчёте 170 колонок и под миллион строк
Групповые операции?
Да, предупреждаю что вызов луашной функции из сишки - это плохая идея, луа вызывает сишку быстро, а сишка вызывает луа медленно (особенности безопасности фиговин).
Это я на случай если будешь делать что-то такое:
void foo(lua_State * L, TABLE _tbl_)
{
// на вершине стека - луёвая функция
for (int i = 0; i < _tbl_.raw_count(); i++){
// пихаем строку таблицы
luax_pushtable(L, _tbl_.raw(i), 1);
// пытаемся обработать строку луёвой функцией с вершины стека
lua_call(L, 1, 0);
}
}
Snusmumriken
Можно попробовать изобрести способ сообщить сишке необходимую последовательность действий, и типа сишка сама её выполнит по отношению к каждой колонке в наборе строк.
Viacheslav
Там пул потоков, в каждом свой lua state с кастомным локальным аллокатором, параллельно обрабатываются индивидуальные ряды, а не колонки. Сейчас именно С++ дёргает Lua, но это всё переделать у меня пока что руки не дошли.
Viacheslav
Надо будет сделать, чтобы один раз передавалась вся последовательность операций, потом через multret это можно распихать, куда надо.
mva
Viacheslav
Про luajit 😂
Viacheslav
А, кстати, если его пробовать, то что лучше взять? Стабильный, бету или вообще git master?
mva
гитомастер тоже не один :)
mva
вообще, более стабильным считается мастер 2.0 бранча
Snusmumriken
Можешь LuaJIT 2.1.0-beta3, тут как раз пофиксили 64-битную версию чтобы она нормально память отжирала, а не дохла на 1-2-4гб.
mva
в 2.1 иногда завозят вкусняшки
Snusmumriken
Snusmumriken
https://pastebin.com/waybSfQv
Snusmumriken
Хех, оно даже пути файловой системы парсит, хоть и ниочень ))
Snusmumriken
В общем, доадаптировать до универсальности и норм.
B
философ
Alexey
Esl
Mark ☢️
https://github.com/luaposix/luaposix/pull/307
Mark ☢️
ЙА зопелил
Mark ☢️
ты прямо пиздец какой добрый, лучше бы заревьюирил чем заниматься подобной херотой
Snusmumriken
Нет, лучше заниматься подобной херотой, ты сам умница и не использовал никаких глобалов и undefined variables. Ведь правда?
Mark ☢️
Snusmumriken
<з
Mark ☢️
блин, я состою овердохера айтичятов, и только в этом какая-то очень странная атмосфера, я пока не вкурил почему
Snusmumriken
Топово же!
Snusmumriken
На самом деле, просто ты не очень нравишься лично мне, своей категоричностью и кучей резких слов не по делу, поэтому я отвечаю тебе примерно тем же.
Mark ☢️
ну хз, имхо всё по делу, с пруфами. ну резко. тут возможно, но что ж делать. правда-матка
Mark ☢️
а чтобы понравиться надо сопереживать автору и говорить как всё плохо ?
Mark ☢️
а, да, надо ещё любить винду
Mark ☢️
я забыл
Snusmumriken
Хех, объясняю на пальцах:
1. Правды-матки не существует, есть куча восприятий кучи разных людей, и это всё. Единственное, где есть правда-матка - конкретные вычисления (например, что быстрее: вот этот пример или вот этот, на столько-то процентов).
2. Линукс не лучше виндовса. Виндовс не лучше линукса. Мак не лучше ни виндовса ни линукса. Мобильные операционные системы - мерзкие (кроме мб symbian). Произвольный фанатизм - способ зашорить свой моск остро предвзятым мнением, и это, имхо, отвратительно. Если уж говорить про это - то стоит добавлять это самое "имхо" к каждому предложению, иначе ты начинаешь пороть агрессивную ерунду. Или стоит уточнять конкретные случаи, где что оказывается лучше, и почему. Золотых молотков не существует.
3. У людей разный жизненный опыт. У кого-то он шире, у кого-то он глубже. Считать что у тебя - единственно верная точка зрения, на мой взгляд - весьма недалёко.
Mark ☢️
Имхо, я понял
Snusmumriken
Вот теперь вокруг любовь и благодать : )
Snusmumriken
Не, ачивка "читак-засранец", потому что я потёр кучку демонстративных воплей после.
vitaly
а кто нить тут сайты делает на ngx_lua_module?
mva
соцопрос?
Snusmumriken
Добрый всем вечер,
У меня возник вопрос.
Я пишу клиент - серверное приложение. Все, что мне нужно - это обратится к базе данных на удаленном сервере.
Как это можно сделать?
Что использовать?
Snusmumriken
https://redis.io/
Snusmumriken
Благодарю
Snusmumriken
Ну в реальном приложении нужны всякие авторизации, сессии, токены и прочая бла-бла.
Snusmumriken
То есть это автоматом какой-нибудь openresty в связке с той же редиской.
Snusmumriken
Опенрести умер
Snusmumriken
Живее всех живых ))
Кстати, крайне простое юзание.
mva
или есть какой-то конкретный вопрос?
Snusmumriken
Если что, опенрестя - фактически нгинкс с ngx_lua_module, даже люди одни и те же делали.
vitaly
https://github.com/openresty/lua-nginx-module
vitaly
да знаю я
vitaly
😂
Snusmumriken
Ну кароч да, я прямщас осваиваю веб-хренотень ))