如何解决@HotSpotIntrinsicCandidate 和双/浮动拳击
因此,我正在编写一些代码,这些代码会在最内层循环中对原始类型进行装箱。我查看了 Integer.valueOf
以检查缓存了哪些 int
范围 - 顺便说一下:为什么默认情况下只有 Byte
范围? - 首先注意到 - 令我满意的是 - 范围可以通过 JVM 属性进行配置,然后,这是一个内在方法。这看起来有点奇怪,因为该方法非常简单,我希望 Hotspot 编译和内联代码已经是最佳的,但是还可以。然后我转向浮点值,它们仍然是内在的,尽管方法字面上只是调用类的构造函数,因为没有明显的缓存策略。
在装箱浮点原语时,Hotspot 可以做哪些优化(例如一些 jvm 实现)?
解决方法
Double.valueOf
、Float.valueOf
以及其他类似的 valueOf
是 HotSpot JVM 中的内在方法。 JVM 确实knows 关注这些方法并特别对待它们。
有EliminateAutoBox优化,默认开启。优化的想法是摆脱多余的装箱/拆箱。 JIT 编译器会查找匹配的 Double.valueOf()
/doubleValue()
对,并在可能的情况下同时消除这两个调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。