确定特定JDK方法通常是否具有内部实现

时间:2015-04-18 19:01:38

标签: java jvm-hotspot

没有读取OpenJDK源代码(我不反对),热点JVM中有intrinsic operations的相当全面的(或#39;官方')列表(对英特尔说?)

例如,确定Math.abs()是否通常会直接转换为几个原生指令的最快方法是什么?

2 个答案:

答案 0 :(得分:11)

OpenJDK源代码的相关部分说明:

http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/classfile/vmSymbols.hpp#l581

"以下是运行时和CI已知的所有内在函数。"

所以我认为这足够全面!

答案 1 :(得分:3)

Java 9 adds @HotSpotIntrinsicCandidate注释。使用该注释注释的方法将具有内在函数。

不幸的是,这个注释没有显示在在线javadoc中,但我仍然可以使用我的IDE(Eclipse)看到它,并且我认为其他IDE提供了类似的机制,因此这是一种快速检查方法:

Picture of eclipse javadoc window