是什么使JNI通话变慢?

我知道在Java中进行JNI调用时“跨越边界”很慢。

不过,我想知道什么是它,使得它慢?进行JNI调用如此之慢时,底层的jvm实现会做什么?


千万里不及你
浏览 597回答 3
3回答

烙印99

值得一提的是,并非所有标native有“ slow”的Java方法。其中一些是内在函数,使它们变得非常快。要检查哪些是固有的,哪些不是固有的,可以do_intrinsic在vmSymbols.hpp中查找。

慕少森

基本上,JVM会为每个JNI调用解释性地构造C参数,并且不会对代码进行优化。本文概述了更多细节如果您有兴趣对基准JNI和本机代码进行基准测试,则该项目具有用于运行基准的代码。
打开App,查看更多内容
随时随地看视频慕课网APP