0
让我们看看下面的特殊情况:机器人的System.gc本地代码
案例描述:
- Java应用程序调用JNI然后本地媒体服务器创建一个实例。这个本地实例将使用大约40M的内存。
- Java应用程序未发布此实例,但是以finalize(GC)形式发布它。
- 如果Java App创建了很多这样的实例,那么Java中的内存增加但不会太多,本地实例将占用N * 40M内存,如果GC没有及时发生,许多内存将被本机进程占用。
问题:
- 对于这种情况,当将通过GC的Java引发的? GC是否会考虑本地内存增加,然后自动调用GC?
- 我们是否应该在Java层调用System.gc()来释放本机内存?有人似乎不同意通过应用程序调用System.gc()。
- 解决此类内存不足的最佳解决方案是什么?