我正在研究需要与C应用程序通信的Java应用程序。 C应用程序使用共享内存和mmap进行通信,我需要Java应用程序访问相同的内存。我的第一次尝试涉及使用JNI调用从共享内存中检索数据,但是每个JNI调用的开销都会导致性能下降,所以我想要一种方法来访问Java中的内存,并在数据库上执行数据检索Java方面。访问Java内存的最佳方式是什么,类似于mmap?
的想法我是,我需要做到以下几点:
- 使用一个JNI调用来获取共享内存的位置,我需要重视
- 创建一个新的FileChannel的位置( )
- 使用FileChannel创建MappedByteBuffer使用地图()
这是做到这一点的最好方法是什么?另外,我不确定如何实际创建FileChannel以指向正确的内存位置。
imho你不能,但我喜欢纠正 – dfa 2009-07-14 14:03:20