Производительность Grails 3 против 4, время запуска и память
Документация Grails 4 упоминает об улучшении производительности и времени запуска из-за родительского контекста микронавта ( здесь).
Кто-нибудь измерял улучшение от Grails 3 до Grails 4? Как Grails 4 сравнивается с Grails 3 по времени загрузки, производительности и потреблению памяти?
3 ответа
Пишу ответ для записи. Недавно я обновил довольно большое приложение Grails 3 (~150 доменных классов) и заметил примерно 30% -ное сокращение времени загрузки и 20-30% -ное сокращение объема памяти, используемого приложением. Горячий перезапуск в Grails 4 действительно раздражает и тратит много времени даже на небольшие изменения. Мне очень не хватает горячей замены grails 3. Кроме этого, это того стоит.
В этой статье дается сравнение показателей производительности Grails 3.3.9 и 4.0.
Сразу после обновления с 3.3.14 до 4.0.12 я вижу на 20% больше использования ЦП и времени обработки запросов на производстве. Может быть какие-то неоптимальные настройки. Но при простом апгрейде фреймворка я получил штраф в производительности (150к уникальных посетителей в день, 6Гб памяти).
В то же время приложение использует на 30% меньше памяти.
ОБНОВЛЕНИЕ:
проблема с производительностью, вызванная неработающим кешем второго уровня гибернации для классов с наследованием https://github.com/grails/grails-data-mapping/issues/1594
ОБНОВЛЕНИЕ 1:
После исправления проблемы с кешем я вижу улучшение использования ЦП. Grails4 использует примерно на 5-10% меньше ресурсов ЦП по сравнению с Grails 3.3.14.
Я думаю, рекомендуется перейти на Grails 4
Вы сравниваете яблоки и апельсины. Grails - это фреймворк для веб-разработки (в основном), а micronaut больше для микросервисов / демонов. Это две разные вещи полностью.
Grails может использовать Micronaut, но Micronaut не может использовать Grails. Хотя Micronaut - это отдельный проект, в контексте этого вопроса, думайте о Micronaut больше как о подмножестве Grails.