Java 原生启动器性能

标签 java performance

<分区>

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

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

最佳答案

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

问题是 C++ 程序正在使用 -Djava.compiler=NONE 设置运行 native 启动器,这实质上将 JVM 设置为以“解释”模式运行,禁用 JIT(只是-及时)将 java 字节码编译为 native 代码,这自然会导致运行速度变慢,因为每次执行字节码时都需要对其进行解释。

关于Java 原生启动器性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9718419/

相关文章:

performance - MongoDB:双字段索引与文档字段索引

java - Eclipse Virgo : Different startup order on Linux vs. Windows => 如何修复?

java - 从 REST 客户端接收作为 Java 对象的响应

java - 传递类型参数的类,该类型参数本身可以在 Java 中参数化

java - 这在Java中将如何工作?

sql - 删除查询非常慢

windows - 使用Electron时,MongoDb连接的初始化和查询非常慢

performance - 如何在映射带有子 slice 的结构时降低时间复杂度?

java - 为什么不能像函数一样调用构造函数?

java - 在这种情况下 String.format 会导致性能问题吗?