Всё равно, позиция у него странная. Это всё равно, что сказать "ядро Linux 4.x перестало быть линуксом после появления ветки 5.x". Хотя может он так и думает.
Я видел как он общается. Кажется, и правда не понимает. Очень упёртый человек. Правда, ему столько лет, что не факт что он в принципе может стать гибче.
Я видел как он общается. Кажется, и правда не понимает. Очень упёртый человек. Правда, ему столько лет, что не факт что он в принципе может стать гибче.
Я видел как он общается только по топику "LuaJIT is not Lua" сложно судить по одному разу...
Есть софт (ip-pbx asterisk), в котором Lua используется для описания планов набора. При старте asterisk грузит конфиг на Lua и запускает его интерпретацию при каждом звонке. Все замечаиельно, но если в коде есть require(), то происходит считываение этого модуля из файловой системы при каждом запуске. Как с этим обстоит в других системах со встроенным Lua, может можно как-то закэшировать модули?
Есть софт (ip-pbx asterisk), в котором Lua используется для описания планов набора. При старте asterisk грузит конфиг на Lua и запускает его интерпретацию при каждом звонке. Все замечаиельно, но если в коде есть require(), то происходит считываение этого модуля из файловой системы при каждом запуске. Как с этим обстоит в других системах со встроенным Lua, может можно как-то закэшировать модули?
Если приложение создаёт каждый раз новый luastate, то без модификации кода самого приложения ничего сделать не получится
Есть софт (ip-pbx asterisk), в котором Lua используется для описания планов набора. При старте asterisk грузит конфиг на Lua и запускает его интерпретацию при каждом звонке. Все замечаиельно, но если в коде есть require(), то происходит считываение этого модуля из файловой системы при каждом запуске. Как с этим обстоит в других системах со встроенным Lua, может можно как-то закэшировать модули?
Если это динамическая ли то кажется что она должно мапится в память один раз. Для луа файлов нужно их читать самостоятельно компилить и далее их подсовывать через prelod чтобы require работал
Есть софт (ip-pbx asterisk), в котором Lua используется для описания планов набора. При старте asterisk грузит конфиг на Lua и запускает его интерпретацию при каждом звонке. Все замечаиельно, но если в коде есть require(), то происходит считываение этого модуля из файловой системы при каждом запуске. Как с этим обстоит в других системах со встроенным Lua, может можно как-то закэшировать модули?
В астериске и Freeswitch динамическое создание тредов на каждый новый звонок. Поэтому запуск luastate происходит в каждом вновь созданном потоке (которые генерится для каждого нового звонка).
nginx и kamailio сделаны по другому. Там luastate запускается один раз при старте на каждый поток - воркер, которые запускаются как пул в начале. соответсвенно и luastate запускается один раз
В астериске и Freeswitch динамическое создание тредов на каждый новый звонок. Поэтому запуск luastate происходит в каждом вновь созданном потоке (которые генерится для каждого нового звонка).
nginx и kamailio сделаны по другому. Там luastate запускается один раз при старте на каждый поток - воркер, которые запускаются как пул в начале. соответсвенно и luastate запускается один раз
Проверил - на каждый звонок в астериске 3 раза выполняется extensions.lua (дергал http.request из общей части конфига ).
Проверил - на каждый звонок в астериске 3 раза выполняется extensions.lua (дергал http.request из общей части конфига ).
суть того, о чем я говорю в том, что luastate создается каждый раз. Соответственно коннект к сокетам, require и тд исполняются каждый раз
Сколько раз extensions.lua выполняется для вашего конкретного конфига - хз. В общем и целом он выполняется 1 раз, но если у вас там висят всякие hangup handlers то может и больше раз вызываеться
суть того, о чем я говорю в том, что luastate создается каждый раз. Соответственно коннект к сокетам, require и тд исполняются каждый раз
Сколько раз extensions.lua выполняется для вашего конкретного конфига - хз. В общем и целом он выполняется 1 раз, но если у вас там висят всякие hangup handlers то может и больше раз вызываеться
Не 1 раз... в таком конфигe 3 раза подряд дергается http-запрос:
http = require("socket.http") r = http.request("http://localhost:8080")