我一直在关注shoootout alioth基准http://shootout.alioth.debian.org/, 提到两个不同的“java”,它们之间有什么区别?
(java xint和java server)
我知道一点点java(在暑期课上学到的......只是基础知识)
对此感到好奇..
提前预订..
答案 0 :(得分:4)
有多种Java实现(请参阅OpenJDK,Apache Harmony,Jikes等等),但您所说的是:java server
和java xint
不是单独的Java版本。 -Xint
和-server
是两个不同的命令行参数,可以传递给java
运行时。
这是-Xint
-Xint
以仅解释模式操作。禁用对本机代码的编译,并且解释器将执行所有字节码。 Java HotSpot客户端VM的自适应编译器提供的性能优势将不会出现在此模式中。
这里有'-server
参数:
-server
选择Java HotSpot Server VM。在支持64位的jdk上,仅支持Java HotSpot Server VM,因此-server选项是隐式的。这可能会在将来的版本中发生变化。
有关默认VM选择,请参阅服务器级机器检测
答案 1 :(得分:1)
“xint”和“server”变体只是Java Hotspot虚拟机的不同命令行选项。
“-xint”选项告诉HotSpot禁用本机代码编译,并使用字节码解释器执行所有代码。您不会使用生产代码执行此操作。在这种情况下,基准测试(我猜)的目的是显示当您尝试最小化启动时间时会发生什么。
“-server”选项选择针对长时间运行的应用程序调整的HotSpot设置。与“-client”相比,HotSpot决定JIT编译特定方法需要更长时间......但JIT编译器可以更好地进行优化。 (最终结果是启动速度较慢,但长期性能更好。)
然后,在测量实际时间之前,基准测试会运行多次以“预热”JVM。我们的想法是将启动时间排除在等式之外。