JNI 的 Java 内存管理
我有两个问题:
如果我对某个方法进行 JNI 调用并且 JNI 方法泄漏内存怎么办?一旦该方法完成,JVM 垃圾收集器就能够收回该内存。我听说JVM不管理JNI使用的堆空间?但是 JNI 使用的内存是 Java 进程使用的内存的一部分?
是否一定要用JNI来实现IPC?还有哪些流行的 Java 技术或者是否有开源库可以在 Java 中实现共享内存?
I have two questions :
What if I have a JNI call to a method and the JNI method leaks memory. Once this method completes will the JVM Garbage collector be able to get that memory back. I heard that the JVM does not manage the Heap Space used by JNI ? But the memory used by JNI is a part of the memory used by the Java process ?
Is it absolutely necessary to use JNI to achieve IPC ? What are the other popular Java techniques or is there a Open Source Library to achieve Shared memory in Java ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以考虑使用内存映射文件 (示例)。
您可以在 IPC 上下文中使用 RPC(计算机与计算机之间),例如套接字、Web 服务、JMS 等。
You can consider use Memory-Mapped Files (sample).
You can use RPCs (between computer and computer) in IPC context, such as socket, web service, JMS, etc.