• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:java-native方法慢的原因

java 搞代码 3年前 (2022-01-27) 23次浏览 已收录 0个评论

这里先摘录一篇博客里的局部内容:

如果一个办法描述符内有native,这个描述符块将有一个指向该办法的实现的指针。这些实现在一些DLL文件内,然而它们会被操作系统加载到java程序的地址空间。当一个带有本地办法的类被加载时,其相干的DLL并未被加载,因而指向办法实现的指针并不会被设置。当本地办法被调用之前,这些DLL才会被加载,这是通过调用java.system.loadLibrary()实现的。

下面这段是原作者翻译的,不过感觉有点不太明确:后面说‘一个办法描述符内有native…会被加载到java程序的地址空间‘,而后前面又提到’DLL并未被加载…本地办法被调用之前,DLL才会被加载‘。DLL文件具体是编译的时候加载还是运行的时候加载,这一点还是不能太确定,猜想是运行的时候加载吧—这个有工夫再去找找相干材料。
另外,当须要调用反射这样的native api时还会进行安全检查,访问控制等操作,所以性能会绝对较低,毕竟编译时做的事被拿到运行时做,所以如果真应用了反射,尽量将一些元数据(比方获取的办法,结构器等)进行缓存。

摘录的文章:
Java的native办法


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:java-native方法慢的原因
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址