主要观点总结
文章主要讨论了Android中的垃圾回收机制(GC)对Native内存的影响。文章首先介绍了Java虚拟机中的垃圾回收机制,然后探讨了Native内存分配是否会影响虚拟机的GC回收策略。接着,文章详细解释了ART虚拟机中,当Native内存占用达到一定阈值时,会触发GC的原因和过程。这个过程涉及到一个叫做NativeAllocationRegistry的类,用于管理Java对象及其持有的Native内存。文章还提到了一种性能优化的方法,即通过检测当前Native内存的大小,主动触发GC操作,以提高内存回收的效率。最后,文章还推荐了一个网站和公众号,供读者进一步学习和了解Android相关知识。
关键观点总结
关键观点1: 垃圾回收机制对Native内存的影响
文章探讨了Java虚拟机中的垃圾回收机制是否会影响Native内存,以及ART虚拟机中,当Native内存达到一定阈值时,会触发GC的原因和过程。
关键观点2: NativeAllocationRegistry的作用
NativeAllocationRegistry用于管理Java对象及其持有的Native内存,当Native内存占用达到一定阈值时,会触发GC。
关键观点3: 性能优化方法
文章提到了一种性能优化的方法,即通过检测当前Native内存的大小,主动触发GC操作,以提高内存回收的效率。
关键观点4: 网站和公众号推荐
文章最后推荐了一个网站和公众号,供读者进一步学习和了解Android相关知识。
文章预览
本文作者 作者: Pika 链接: https://juejin.cn/post/7432327923213205555 本文由作者授权发布。 最近都在更新鸿蒙相关的话题,android的文章比较少,我们来聊一个Android中有趣的话题,还是GC。 1 一个有趣的话题 我们都知道Java虚拟机中都会有垃圾回收机制(GC),有了垃圾回收机制的存在,虚拟机可以根据策略去回收一些被释放的Java对象,从而保证整个内存的空间不至于无限增长,一般的策略就是看Java虚拟机中的内存空间大小占比去决定要不要进行GC,那么问题来了,Native中分配的内存,会不会影响虚拟机的GC回收策略呢?换句话来说,Native内存越多,会不会触发GC? 答案是,会的,ART虚拟机中有这种机制,不过可以说是“间接的”。 2 ART中关于Native内存占用导致的GC 在ART GC策略中,触发常规GC时,GC大致触发可以分为策略触发GC RequestConcurrentGC 与分配时GC
………………………………