2023-01-19 353
我正在开发类似于sun.misc.unsafe但具有扩展内存管理的JNI实现.
为什么来自sun.misc.unsafe和我发达的库的本机方法的呼叫时间极为不同?
一些数字:
sun.misc.unsafe.getint(地址)〜1NS
当我的类似方法〜10ns
遵循OpenJDK的源代码,这两个实现都是完全相同的,只是通过指针返回变量.两者都以相同的方式注册.
如何加快jni呼叫?是什么使不安全的表现如此特别?
谢谢,
Yury/
如果您在不安全类中查找本机方法的来源,您会发现它不使用JNI实现.取而代之的是,不安全的方法被嵌入为机器代码. getInt(long)例如,成为一个机器代码指令.
因此,您无法编写与使用Unsafe一样快的JNI方法,而无需更改JVM,因此它会嵌入机器代码.
以上所述是小编给大家介绍的为什么JNI对本地方法的调用比sun.misc.Unsafe中的类似方法要慢?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25828.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态