java 的调用导致 c++ 内存泄漏

c++ memory leak by java's calling

我对 java 中调用 c++ 的内存泄漏有疑问。如果我的 c++ 函数有内存泄漏问题,当我在我的 java 应用程序中调用它时。

  1. 我可以通过JVM工具找到问题吗?
  2. 如果内存不断泄漏,java能捕获out of memory异常吗?
  3. 我用JNA方式调用c++函数,使用JNA结构对象,需要自己管理内存。
  • 首先,C++ 代码 运行 在 JVM 的控制之外,因此您无法通过任何 JVM 工具(如 JMC)发现问题。

  • 对于第二个 OutOfMemoryError 也不例外,它是一个错误,如果 JVM 内存已满,您可以捕获它,但在捕获该错误后您仍然无法对此做任何思考,但是在你的情况下,JVM 之外的 C++ 代码 运行 这个错误不会被 java 直接捕获,你需要在 C++ 中自行处理它。

  • 3rd Yes you have to manage memory by your self.