1.1, Ъ (?), 22:26, 21/05/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
С точки зрения производительности и потребления ресурсов, что лучше - встроенный Lua или JS?
| |
|
2.2, Кампуча (?), 22:31, 21/05/2019 [^] [^^] [^^^] [ответить]
| –10 +/– |
LUA - это сторонний модуль сторонних разработчиков. njs - модуль от авторов, выводы делай сам. (njs выигрывает, такой должен быть вывод)
| |
|
3.3, Evgeny Orlov (?), 22:53, 21/05/2019 [^] [^^] [^^^] [ответить]
| +12 +/– |
Lua + nginx это уже openresty. он архитектурно идет немного в разрез с nginx. Но в целом свою задачу решает.
njs быстрый потому что поддерживает только основные элементы ECMAScript и интерпретатором выступает не v8, а самописный движок заделанный под экосистему nginx
| |
|
2.4, KonstantinB (ok), 23:26, 21/05/2019 [^] [^^] [^^^] [ответить]
| +6 +/– |
Не думаю, что вы заметите разницу, если вы не Фейсбук. Но вообще njs должен быть пошустрее, поскольку теснее интегрирован.
А вообще, lua-модуль - это причина, по которой в nginx стали делать njs. В lua-модуле используется ряд костылей для интеграции с nginx, типа залезания во внутренние API и структуры nginx-а, неизменность которых никто никогда не гарантировал, но ввиду популярности lua-модуля в том числе и у коммерческих пользователей они вынуждены поддерживать совместимость nginx (в том числе nginx-plus) с lua-модулем (или самостоятельно патчить его под новые версии). В какой-то момент им это все явно поднадоело.
| |
2.5, Аноним (5), 23:54, 21/05/2019 [^] [^^] [^^^] [ответить]
| +/– |
поскольку ни в том ни в другом нет jit, а схема работы в них одинаковая - существенной разницы не может быть (до тех пор пока они используются по назначению).
| |
|
3.6, Аноним (6), 01:45, 22/05/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Подозреваю, что для типичного применения в 2-3 строки кода от jit-а будет больше вреда, чем пользы.
| |
|
4.8, Аноним (8), 10:34, 22/05/2019 [^] [^^] [^^^] [ответить]
| +/– |
А почему нельзя сделать так, чтобы jit работал только когда быстрее?
Чёто типа уровня оптимизации. И почему низя кэшировать результаты?
Эта жаба не кэшируит (кажется). (хотя у неё уже на входе бинарный код для машины) И при каждом новом запуске она делает одну и ту же работу по оптимизации того же кода (вроде).
И меня раздражает, что она так долго запускает программы.
Почему нельзя запускать их в первом уровне оптимизации (быстро), а потом уже в отдельном потоке щитать? (И чем больше вызывается код - тем лучше его оптимизировать, например).
Но ведь jvm делают не дураки (а вот я - дурак), им что то мешает?
Почему нельзя ВСЁ закешировать???
| |
|
5.10, Аноним (10), 11:30, 22/05/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Почему нельзя запускать их в первом уровне оптимизации (быстро), а потом уже в отдельном потоке щитать?
В web js-ных движках так и сделано.
А вот Java в её мире запускается один раз в неделю (месяц, год, 10 лет?) и работает, работает, работает. При таком подходе вообще глубоко фиолетово, сколько времени оно запускается. И за такое время работы накапливается статистика запуска функций огого.
> (И чем больше вызывается код - тем лучше его оптимизировать, например).
Гляньте, например, параметр XX:CompileThreshold (дефолт 10000).
Вообще, в Яве я профан. Так что оправьте, если что.
Всё это похоже на, так сказать, серверный профиль использования. И что там на декстопе прога запускается и закрывается каждые 10 минут - ну ой. Может, так есть какой-то "десктопный" профиль.
| |
5.15, KonstantinB (ok), 21:42, 22/05/2019 [^] [^^] [^^^] [ответить]
| +/– |
> А почему нельзя сделать так, чтобы jit работал только когда быстрее?
Потому что если вы хотите засунуть программу в 100 000 строк кода в nginx, вы не должны этого хотеть. Пишите на nodejs и проксируйте на него (или используйте nginx unit).
Nginx - не application server. Назначение этих модулей - реализация конфигураций, для которых не хватает встроенных возможностей nginx, а на таких микроскопических объемах кода от JIT-а никогда не будет особого толку. Если и будет, то недалеко от погрешности измерения.
| |
|
|
3.14, irinat (ok), 16:47, 22/05/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> ни в том ни в другом нет jit
Lua-модуль для Nginx проектировался под LuaJIT, хоть и с поддержкой Lua 5.1. Не знаю, зачем им поддержка Lua 5.1, потому что даже в режиме интерпретатора LuaJIT быстрее.
| |
3.17, Аноним (17), 18:12, 23/05/2019 [^] [^^] [^^^] [ответить]
| +/– |
>поскольку ни в том ни в другом нет jit
Вообще-то в lua-nginx-module как раз LuaJIT используется
| |
|
|
|
|
3.13, гуглезила (?), 16:31, 22/05/2019 [^] [^^] [^^^] [ответить]
| +/– |
а не будете делать что велим - отключим газ...то есть гугль...то есть интернет вообще.
| |
|
2.16, KonstantinB (ok), 21:45, 22/05/2019 [^] [^^] [^^^] [ответить]
| +/– |
В тексте новости написано, что ожидается в ветке 1.17.
Посмотрите на цикл релизов nginx и сделайте выводы.
| |
|
|