2012-03-15 2 views
12

У меня есть программа, написанная на Java и встроенная программа запуска, написанная на C++, на основе образца в http://www.codeproject.com/Articles/17352/JVM-Launcher. Странно, что запуск моей программы с моей локальной пусковой установки занимает больше процессора, чем использование java.exe (~ 5% против 15-20%). Я размышлял об этой ситуации, но это все еще не имеет большого смысла. Я попытался увеличить размер кучи JVM, (re) создал встроенную пусковую установку в режиме выпуска, использовал другую версию JRE (1.6_24, 1.6_31, 1.7_03), но не повезло.Производительность запуска Java Java

Есть ли у кого-нибудь предложение, как это исправить?

+0

Можете ли вы предоставить нам источники (как C++, так и Java)? Не зная, что делает ваша программа, действительно сложно сказать что-либо. – JesperE

+2

Я нашел, где проблема, это использование '-Djava.compiler = NONE', которые вызывают запуск jvm в режиме отладки. – secmask

+3

Уход за закрытием вопроса, так как вы нашли ответ? –

ответ

0

Примечание: Предоставление этого ответа для перевода комментария OP для ответа.

Проблема заключалась в том, что программа на C++ запускала встроенную пусковую установку с параметром -Djava.compiler=NONE, который по существу устанавливал JVM для запуска в режиме интерпретации, отключая компиляцию JIT (точно в момент времени) байт-кода Java на собственный код , что, естественно, замедляется, поскольку байт-код нужно интерпретировать каждый раз, когда он выполняется.

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