【问题标题】:JNI MMAP memory leakJNI MMAP 内存泄漏
【发布时间】:2012-03-12 12:35:05
【问题描述】:

我有一个通过 JNI 与 JAVA 通信的 Pro*C 应用程序。随着应用程序连续运行几天,应用程序性能下降。我进行了实验,在 Sun 分析器中我发现 mmap 泄漏了 94% 的内存。 谁能指导我消除或最小化内存泄漏? 谢谢

【问题讨论】:

    标签: java java-native-interface mmap


    【解决方案1】:

    我会在 Java 中使用内存映射。这会对 GC 进行自动清理。

    如果您无法更改 C 代码,那么您需要对其进行调试,因为这似乎是您的错误的原因。 (在这种情况下,我会将标签从 [Java] 更改为 [C]

    【讨论】:

    • 谢谢彼得。你能解释一下这个内存映射吗?对不起,我是 JAVA 和 JNI 的新手
    • 使用内存映射或 JNI 是相当高级的主题,有十年经验的专家会避免过于复杂。除非您是 C 方面的专家(这是我怀疑真正问题所在),否则我建议您尝试另一种方法来解决您的问题。
    • 再次感谢。很好的解决方案已经实现,所以去内存映射是不可行的。我如何从这一点进行,比如 JNI 调用有内存问题
    • 我会编写一个 C 程序,它以一种真实的方式调用该库,并将其作为纯 C 程序进行调试/分析。尝试同时使用 Java 和 C 可能会非常复杂且难以解决。如果它不能作为独立的 C 程序正常工作,它将无法通过 JNI 工作。
    猜你喜欢
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 2013-09-11
    • 2013-11-01
    相关资源
    最近更新 更多