GetDirectBufferAddress的性能不比GetDoubleArrayElements好

时间:2018-07-25 19:19:44

标签: java c java-native-interface

我正在使用JNI将大量数据从Java发送到C ++,并且为了最大程度地减少传输数据的成本并避免不必要的复制,我尝试实现GetDirectBufferAddress来直接访问内存位置而不是GetDoubleArrayElements。我还通过System.currentTimeMillis()从Java端对这两种方法运行了性能指标,并获得了以下性能时间:

GetDoubleArrayElements:98毫秒 GetDirectBufferAddress:96毫秒

几乎没有性能提高。有什么可能会发生这种情况吗?我使用ByteBuffer.allocateDirect().order(ByteOrder.nativeOrder)arrBuff.putDouble(arr[i])在Java端分配了ByteBuffer。我想念什么吗?任何参考材料将不胜感激,我只是想学习。

0 个答案:

没有答案