2012-07-03 4 views
0

Есть ли большая разница в производительности при запуске приложения Java с помощью плагина exec и запуска с использованием командной строки java? , например.Java mvn exec performance

mvn exec:java -Dexec.mainClass="FixTradeTest" 

против

java FixTradeTest 
+1

Я бы не предполагал, что существует значительная разница, если вы не видели иначе. Я предполагаю, что время запуска немного длиннее. –

ответ

0

ехес плагин запускает программы внутри одной и той же JVM мавена работает в. Предполагая, что вы используете один и тот же аромат виртуальной машины Java для обоих мавена и командной строки Java, не должно быть большой другой , если это все, что вы делаете.

Если вы запустите сборку и, наконец, запустите этот Java-класс, вы будете запускать JVM один раз, один раз для maven и один раз для вашей программы. С другой стороны, вы рискуете иметь свойства, установленные на вашем JVM, которые влияют на поведение вашей программы.

Проверьте this, если у вас еще нет (найдите Различия по сравнению с простой командной строкой).

+0

Другое отличие заключается в изменении поведения UncaughtExceptionHandler. Для меня это прерыв. –

0

Ну, поскольку mvn exec:java ... будет работать в том же JVM, что и Maven, не было бы большой разницы, кроме того, что работающий java my.MyClass всегда был бы немного быстрее, поскольку Maven выполнит некоторые операции до фактического запуска класс.

Смежные вопросы