Closed Karloid closed 3 years ago
Добавил поддержку для Java-GraalVM-native там все аналогично, единственный момент - это снижение таргета джавы с 15 на 11 т.к. грааль вм не поддерживает 15
(но, кажется, большинство предпочтут отсутствие таймлитов, тем фичам, которые появились в 15 джаве)
Общая инструкция как без докера\мавена собрать свою стратегию в натив:
1)качаем\ставим GraalVM https://www.graalvm.org/docs/getting-started/#install-graalvm
он ставится как “обычный” jdk, но не обязательно его делать дефолтным, или именно им собирать джарник можно в PATH Только прописать
export PATH=${PATH}:/Library/Java/JavaVirtualMachines/graalvm-ce-java11-20.3.0//Contents/Home/bin
2) доустанавливаем native-image
https://www.graalvm.org/reference-manual/native-image/#install-native-image
gu install native-image
(gu - это утилита из GraalVM)
3) Конвертим jar в native -
native-image -jar ./strategy.jar ./strategy_native
@Karloid для scala клиента подобное сложно реализовать?
@Karloid для scala клиента подобное сложно реализовать?
по идее нет, аналогично должно быть
Как выяснилось, многие стратегии на Java/Kotlin имеют серьезные проблемы с низкой и непредсказуемой производительностью из-за JIT и, как следствие, TIME LIMITами Потребляемое время для jvm-стратегий #106
Одно из решений - это использовать GraalVM Ahead of Time компиляцию native-image
кажется, что такой вариант билда здорово поможет java\kotlin стратегиям
работоспособность контейнера проверял следующей командой:
в результате стратегия запускалась, и собранный бинарник оказывался у меня в
links: https://www.graalvm.org/reference-manual/native-image/ https://www.graalvm.org/reference-manual/native-image/NativeImageMavenPlugin/
PS: докерфайл мб можно как-то улучшить, я совсем не эксперт в докере PPS: с базовым образом oracle/graalvm-ce:20.3.0-java11 у меня зависал yum PPPS: преобразование jar в натив на моей стратегии с 2мб jar занимает примерно 30сек реального времени, проц 9700k. Выходной бинарь имеет размер ~11мб