【问题标题】:Determining whether a particular JDK Method typically has an intrinsic implementation确定特定的 JDK 方法是否通常具有内在实现
【发布时间】:2021-10-23 23:03:13
【问题描述】:

没有阅读 OpenJDK 源代码(我并不反对),Hotspot JVM 中是否有一个相当全面(或“官方”)的 intrinsic operations 列表(比如 Intel)?

例如,确定Math.abs() 是否会在任何使用的地方直接转换为一些本机指令的最快方法是什么?

【问题讨论】:

  • 由于它依赖于 JVM 实现,你可能不得不深入研究源代码......

标签: java jvm-hotspot


【解决方案1】:

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

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

“这是运行时和 CI 已知的所有内在函数。”

所以我想这已经足够全面了!

【讨论】:

【解决方案2】:

Java 9 adds @HotSpotIntrinsicCandidate 注释,已重命名为 @IntrinsicCandidate in JDK 16。使用该注释注释的方法将具有它们的内在函数。

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

【讨论】:

    猜你喜欢
    • 2010-11-09
    • 2021-11-10
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多