程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了JVM什么时候使用内在函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决JVM什么时候使用内在函数?

开发过程中遇到JVM什么时候使用内在函数的问题如何解决?下面主要结合日常开发的经验,给出你关于JVM什么时候使用内在函数的解决方法建议,希望对你解决JVM什么时候使用内在函数有所启发或帮助;

答案很简单:以这种方式定义内在函数,因为存在一种更快,本机的方法来获取函数结果,并且可以在指定映射的情况下使用该方法。

那根本与编译无关。@H_675_5@Integer.bitCount在实现被标记为可替换为本地asm指令POPCNT的意义上,它是特殊的。基本上,在使用@H_675_5@Integer.bitCount函数时(如果cpu支持该指令)使用此本机指令,当您声明函数的自己副本时,将使用常规实现。

为什么JVM能够识别出功能可以优化?因为它是硬编码的地方在JDK中,有无关相似的代码。

解决方法

为什么将某些代码模式(当存在于JVM内部类中时)转换为内在函数,而将相同的模式从我自己的类中调用时却不是。

例:

Integer中调用bitCount函数时,bitCount(i)将转换为内部函数。但是,当复制到我的班级然后调用时,执行将花费更长的时间。

比较

@H_675_5@Integer.bitCount(i) 
MyClass.bitCount(i)


public static int bitCount(int i) {
    // HD,Figure 5-2
    i = i - ((i >>> 1) & 0x55555555);
    i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);
    i = (i + (i >>> 4)) & 0x0f0f0f0f;
    i = i + (i >>> 8);
    i = i + (i >>> 16);
    return i & 0x3f;
}

大佬总结

以上是大佬教程为你收集整理的JVM什么时候使用内在函数全部内容,希望文章能够帮你解决JVM什么时候使用内在函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: