Удаляет ли использование режима быстрой сборки для тестов функциональность?JAVA

Программисты JAVA общаются здесь
Anonymous
Удаляет ли использование режима быстрой сборки для тестов функциональность?

Сообщение Anonymous »


У меня есть приложение, которое развернуто с помощью инструмента native-image GraalVM. В конвейере CI этого приложения я запускаю свои тесты (включая интеграционные тесты) в режиме JVM и (при условии, что они успешны в режиме JVM) также в собственном режиме (с использованием инструментов собственной сборки), чтобы гарантировать native -image ничего не нарушает (например, из-за отсутствия метаданных отражения).

Однако компиляция этих тестов занимает довольно много времени и ресурсов (например, памяти), которые я хотел бы уменьшить, если это возможно.

В документации native-image я вижу следующее о режиме быстрой сборки:

Рассмотрите возможность использования режима быстрой сборки (-Ob), чтобы ускорить сборку во время разработки. Точнее, этот режим уменьшает количество оптимизаций, выполняемых компилятором Graal, и тем самым сокращает общее время этапа компиляции. Режим быстрой сборки не только полезен для разработки, но и может привести к уменьшению размера сгенерированного исполняемого файла. Однако обратите внимание, что общая пиковая производительность исполняемого файла может быть ниже из-за меньшего количества оптимизаций.

Мои тесты показали, что это может значительно повысить производительность сборки. Однако меня беспокоит возможность того, что native-image пропустит некоторые оптимизации в режиме быстрой сборки, которые могут нарушить некоторые функции (например, когда мне нужно добавить некоторые подсказки по отражению/ресурсам/JNI/прокси, которые могут быть необходимым с -O3, но не с -Ob по какой-то причине).

Удалит ли режим быстрой сборки тестов (CI) какие-либо функции, которые могут нарушить мои тесты?

В идеале мне хотелось бы увидеть обоснование (почему это (не)безопасно), включая ссылки на документацию (если возможно) по этому поводу.

Вернуться в «JAVA»