gpt4 book ai didi

java - 如何查找由java代码引起的 native 内存泄漏?

转载 作者:行者123 更新时间:2023-12-02 08:14:13 26 4
gpt4 key购买 nike

我有一个java代码,它基本上创建、显示然后销毁几何对象,例如球体,并进行一定次数的迭代。我使用 native opengl 调用来显示这些对象。随着 native 内存不断增加,代码中存在一些内存泄漏。我正在通过查看任务管理器中的“Workink Set”内存来检查 native 内存。然而,当我运行netbeans分析器时,我找不到任何内存泄漏。那么,如何查找 native 内存泄漏呢?是否有任何工具可以可视化 native 内存和堆内存使用情况?

谢谢!!

最佳答案

JConsole可以帮助查看Java内存使用情况。

如果您正在使用现有的 Java-OpenGL 库,则它可能正在使用可能无法释放的直接缓冲区。如果您自己编写了 native 代码,这可能不适用。

对于 native 内存,如果您的 Java-OpenGL 库使用直接缓冲区,我注意到仅在 JDK 7 中(我正在运行预发行版),JConsole 中可见一些额外的 MBean,而这些在以前的版本中是不存在的这可能有帮助。查看 JConsole 中 java.nio.BufferPool 下的 MBeans 选项卡。在“直接”bean 下,您可以看到直接缓冲区使用的内存。如果这种情况持续上升,则可能表明存在直接内存泄漏(可能是因为未在 Java 代码中关闭/处置 OpenGL 资源)。

关于java - 如何查找由java代码引起的 native 内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com