本机代码的android System.gc 下面我们考虑以下特殊情况:

本机代码的android System.gc 下面我们考虑以下特殊情况:,android,garbage-collection,Android,Garbage Collection,案例描述: Java应用程序调用jni,然后调用本机mediaserver来创建实例。此本机实例将使用大约40M内存 Java应用程序没有发布此实例,但在finalize(GC)中发布了它 如果Java App创建了很多这样的实例,那么Java中的内存会增加但不会太多,本机实例会占用N*40M内存,如果GC没有及时发生,本机进程会消耗很多内存 问题: 在这种情况下,Java何时触发GC?GC会考虑本机内存增加,然后自动调用GC吗?< /LI> 我们应该在Java层调用System.gc()来释放

案例描述:

  • Java应用程序调用jni,然后调用本机mediaserver来创建实例。此本机实例将使用大约40M内存
  • Java应用程序没有发布此实例,但在finalize(GC)中发布了它
  • 如果Java App创建了很多这样的实例,那么Java中的内存会增加但不会太多,本机实例会占用N*40M内存,如果GC没有及时发生,本机进程会消耗很多内存
  • 问题:

  • 在这种情况下,Java何时触发GC?GC会考虑本机内存增加,然后自动调用GC吗?< /LI>
  • 我们应该在Java层调用System.gc()来释放本机内存吗?似乎有人不同意应用程序调用System.gc()
  • 解决这种内存不足的最佳解决方案是什么
    实际上,GC是一个java层概念,对于本机代码,我想没有这样的概念