-4

我正在使用 JNI 在 c++ 应用程序中调用 java 代码

执行java代码需要10GB,在c ++中执行函数(在调用java代码中)后,它不会释放内存,但是如果我关闭应用程序然后它会释放内存,你能帮我解决这个问题吗

4

1 回答 1

0

JVM在启动时分配虚拟内存,用于堆等,通常在停止之前不会释放它。这样做是因为堆是托管内存,JVM 期望以这种方式管理它。这对于长时间运行的流程最有效,但对于您所拥有的单点解决方案来说效果不佳。

如果您将 JVM 作为一个单独的进程运行,它将按您的预期运行。

于 2012-12-13T11:46:15.547 回答