2014-07-09 26 views
0

让我们看看下面的特殊情况:机器人的System.gc本地代码

案例描述:

  1. Java应用程序调用JNI然后本地媒体服务器创建一个实例。这个本地实例将使用大约40M的内存。
  2. Java应用程序未发布此实例,但是以finalize(GC)形式发布它。
  3. 如果Java App创建了很多这样的实例,那么Java中的内存增加但不会太多,本地实例将占用N * 40M内存,如果GC没有及时发生,许多内存将被本机进程占用。

问题:

  1. 对于这种情况,当将通过GC的Java引发的? GC是否会考虑本地内存增加,然后自动调用GC?
  2. 我们是否应该在Java层调用System.gc()来释放本机内存?有人似乎不同意通过应用程序调用System.gc()。
  3. 解决此类内存不足的最佳解决方案是什么?

回答

1

其实,GC是一个java层的概念,对于本地代码来说,我猜没有这样的概念。

相关问题