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

Don*_*d_W 9 java jvm-hotspot

如果没有读取OpenJDK源代码(我不反对),那么Hotspot JVM(比如英特尔)中的内部操作列表是否相当全面(或"官方" )?

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

Don*_*d_W 12

OpenJDK源代码的相关部分指出:

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

"这是运行时和CI所知的所有内在函数."

所以我认为这足够全面!


Jor*_*nee 5

Java 9添加@HotSpotIntrinsicCandidate注释。用该注释注释的方法将具有它们的内在函数。

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

eclipse javadoc 窗口图片