Java JNI 调用的开销
可能的重复:
是什么使JNI调用速度变慢?
首先让我说,这个问题更多的是出于好奇心,而不是真正的必要性。
我很想知道从Java执行JNI调用的开销是多少,比如说,与分配数组并使用for循环复制元素相比。System.arraycopy
如果开销很大,那么可能有一个粗略的元素“幻数”,它只需使用for循环而不是使用System调用即可补偿这些元素。此外,导致此开销的系统调用中究竟涉及什么?我猜堆栈必须推送到调用的上下文中,这可能需要一段时间,但我找不到整个过程的良好解释。
让我澄清我的问题:
我知道使用数组复制是在Java中复制数组的最快方法。
话虽如此,假设我正在使用它来复制只有一个元素的数组。由于我调用底层操作系统来执行此操作,因此此调用中必须存在开销。我很想知道这个开销是什么,以及调用过程中发生了什么。
我很抱歉,如果使用数组复制误导你从我的问题的目的。我很想知道 JNI 调用的开销,以及实际调用中涉及的内容。