pde*_*eva 184 java performance java-native-interface
我知道在Java中进行JNI调用时"跨越边界"很慢.
不过,我想知道什么是它,使得它慢?在进行使其速度变慢的JNI调用时,底层jvm实现会做什么?
And*_*mas 169
首先,值得注意的是,通过"慢",我们谈论的事情可能需要几十纳秒.对于琐碎的原生方法,在2010年,我在Windows桌面上平均测量了40秒的呼叫,在我的Mac桌面上测量了11 ns.除非你打多少电话,否则你不会注意到.
也就是说,调用本机方法可能比进行普通的Java方法调用要慢.原因包括:
一些额外的讨论,可能是过时的,可以在2000年由Steve Wilson和Jeff Kesselman在"9.2:检查JNI成本"一节中的"Java?Platform Performance:Strategies and Tactics"中找到.这是关于的一路下跌三分之一此页由以下@Philip在评论规定.
2009年IBM developerWorks文章"使用Java Native Interface的最佳实践"提供了一些有关避免JNI性能缺陷的建议.
Tem*_*ema 24
值得一提的是,并非所有标记的Java方法native都"慢".其中一些是内在函数,使它们非常快.要检查哪些是内在的以及哪些不是内在的,您可以do_intrinsic在vmSymbols.hpp中查找.
| 归档时间: |
|
| 查看次数: |
38283 次 |
| 最近记录: |