Java本机启动器性能

sec*_*ask 11 java performance

我有一个用Java编写的程序和一个用C++编写的本机启动程序,基于http://www.codeproject.com/Articles/17352/JVM-Launcher上的一个示例.奇怪的是,用我的原生发射器运行我的程序需要比使用更多的CPU java.exe(~5%vs 15-20%).我一直在考虑这种情况,但它仍然没有多大意义.我已经尝试增加JVM堆大小,(重新)在发布模式下构建本机启动器,使用不同的JRE版本(1.6_24,1.6_31,1.7_03)但没有运气.

有没有人建议如何解决这个问题?

Att*_*ila 0

注意:提供此答案是为了将 OP 的评论移至答案。

问题是 C++ 程序正在使用该-Djava.compiler=NONE设置运行本机启动器,该设置本质上将 JVM 设置为以“解释”模式运行,禁用 Java 字节码到本机代码的 JIT(即时)编译,这自然会使运行速度较慢,因为每次执行时都需要解释字节码。