Comments 9
Эти нативные исполнимые файлы запускаются быстрее, требуют меньше памяти и не требуют установленной JVM.
Насколько я помню, потребление памяти там "в принципе такое же", как у обычной программы под обычной JVM - т.е. при старте выделяется хип, и размер этого хипа не будет в общем случае меньше от того, что вы скомпилируете GraalVM. Ну то есть, я бы тут уточнил слегка, о какой памяти идет речь, и какое именно потребление уменьшится.
Ну и насчет запуска быстрее - есть же в новых JDK возможность собрать образ с загруженными классами, который тоже стартует существенно быстрее (по понятным причинам загрузка множества классов из множества jar-ов - это не быстро). Было бы неплохо сравнивать время старта в таком режиме. Ну т.е. я про jpackage, если что.
Спасибо за вопрос. Провел серию тестов производительности с использованием JMH для оценки времени запуска и операционной готовности различных конфигураций контейнеров Kafka, статью дополнил.
Для оценки памяти я использовал docker stats.
Я возможно про память недостаточно четко изложил свою мысль. Давайте чуть поясню - я про то, что если мы в heap память приложения скажем хотим загрузить гигабайт данных каких-то, и использовать ее как кеш, то этот гигабайт не изменится, если собрать все граалем, правда же? Ну т.е. когда вы пишете про уменьшение потребления памяти - было бы очень неплохо уточнить, о какой памяти идет речь.
В статье проводится сравнение между "EmbeddedKafka с GraalVM" и confluentinc/cp-kafka
. При этом разницу в объеме используемой памяти и скорости запуска следует рассматривать именно в рамках этого контекста. Я согласен с тем, что только использование GraalVM не всегда может привести к значительной разнице в потреблении памяти, но в случае скорости запуска влияние может быть значительным. Следует также учитывать, что анализ ведется в контексте последовательного запуска относительно простых интеграционных тестов, где требуется минимальная ресурсная конфигурация для запуска.
Я в целом и не спорю. Просто это может быть стоило чуть яснее сформулировать. Ну т.е. вы декларировали что хотите ускорить запуск вот этого проекта и снизить потребление - вы именно это померяли, это можно считать что доказано. А в целом - ну там как получится, другие проекты могут повести себя иначе.
К сожалению запустить и проверить в деле не удалось. В тестовой среде контейнер-Бин не создается. Хотя просто в докере запускается без проблем
Прошу обратить внимание на версии, указанные в readme проекта https://github.com/avvero/embedded-kafka
Как сократить потребление памяти в интеграционных тестах с Kafka с помощью GraalVM