OpenJDK JVM是否并行化字节码?

use*_*171 5 java parallel-processing openjdk

我使用单线程Java代码实现了一个算法.当我使用JIT编译启动程序时,它会使我机器上的所有8个内核饱和.当我使用-XintJVM选项运行相同的程序来禁用JIT编译时,它按预期在单个核上运行.

这是我的Java版本信息:

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.12.10.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

为什么我的代码看起来像是并行化的?我在哪里可以找到有关HotSpot何时可以并行化代码的更多信息?

sto*_*tal 7

Java不会自动并行化代码,我的猜测是你看到的核心饱和度是JIT编译你的代码.让你的测试程序输入更大,以便它运行更长时间(可能是2-3分钟),看看它是否会在一段时间后关闭.