131. Android垃圾回收机制和程序优化System.gc( ) ? |
垃圾收集算法的核心思想:对虚拟机的可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,则称其为存活对象,反之,如果对象不再被引用,则为垃圾对象,可以回收其占据的空间,用于再分配。 JVM进行次GC的频率很高,但因为这种GC占用的时间极短,所以对系统产生的影响不大,但主GC对系统的影响很明显,触发主GC的条件主要有下: 当应用程序空闲时,即没有应用线程在运行时,GC会被调用,因为GC在优先级别最低的线程中进行,所以当应用繁忙时,GC就不会被调用; Java堆内存不足时,主GC会被调用,当应用线程正在运行,并在运行过程中创建新对象时,若这时内存空间不足,JVM会强制调用主GC,以便回收内存用于新的分配,若GC一次之后仍无法满足,则会继续进行两次,若仍无法满足,则会报OOM错误; System.gc( )函数的作用只是提醒虚拟机希望进行一次垃圾回收,但并不一定保证会进行,具体什么时候进行取决于虚拟机; |
🚀🚀🚀🚀🚀🚀 |