问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android 接收大量数据如何避免频繁GC

发布网友 发布时间:2022-12-29 16:14

我来回答

1个回答

热心网友 时间:2023-09-05 01:40

GC会stop the world。会暂停程序的执行,带来延迟的代价。所以在开发中,我们不希望GC的次数过多。
本文将讨论如何在开发中改善各种细节,从而减少GC的次数。
(1)对象不用时最好显式置为 Null
一般而言,为 Null 的对象都会被作为垃圾处理,所以将不用的对象显式地设
为 Null,有利于 GC 收集器判定垃圾,从而提高了 GC 的效率。
(2)尽量少用 System.gc()
此函数建议 JVM进行主 GC,虽然只是建议而非一定,但很多情况下它会触发
主 GC,从而增加主 GC 的频率,也即增加了间歇性停顿的次数。
(3)尽量少用静态变量
静态变量属于全局变量,不会被 GC 回收,它们会一直占用内存。
(4)尽量使用 StringBuffer,而不用 String 来累加字符串
由于 String 是固定长的字符串对象,累加 String 对象时,并非在一个 String对象中扩增,而是重新创建新的 String 对象,如 Str5=Str1+Str2+Str3+Str4,这条语句执行过程中会产生多个垃圾对象,因为对次作“+”操作时都必须创建新的 String 对象,但这些过渡对象对系统来说是没有实际意义的,只会增加更多的垃圾。 避免这种情况可以改用 StringBuffer 来累加字符串,因 StringBuffer是可变长的,它在原有基础上进行扩增,不会产生中间对象
(5)分散对象创建或删除的时间
集中在短时间内大量创建新对象,特别是大对象,会导致突然需要大量内存,JVM 在面临这种情况时,只能进行主 GC,以回收内存或整合内存碎片,从而增加主 GC 的频率。
集中删除对象,道理也是一样的。 它使得突然出现了大量的垃圾对象,空闲空间必然减少,从而大大增加了下一次创建新对象时强制主 GC 的机会。
(6) 尽量少用 finalize 函数
因为它会加大 GC 的工作量, 因此尽量少用finalize 方式回收资源。
(7) 使用软引用类型
如果需要使用经常用到的图片, 可以使用软引用类型, 它可以尽可能将图片保存在内存中, 供程序调用, 而不引起 OutOfMemory。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
可以用电高压锅做蛋糕吗 蛋糕机选哪家实惠? 京东闪付开通后无法添加到applepay怎么办 二年级数学说课稿范文 苹果手机电充到80就不充了怎么回事 上有八,下有八中间有个十字花打一字 ...排名22000.能否上到广工的机械制造和自动化(卓越工程师班)_百度知 ... 把内存由DDR2升级到DDR3,是不是要设置什么东东啊。 怎样吧DDR2的内存条改成DDR3 ...的内存条是DDR2的,我想换DDR3的可以吗?该怎么换?还有该注意什么... 怎么删除word文档中的脚注横线 怎么注销自己身份证下的? 怎样注销身份证名下的 怎么注销本人名下其他 怎么清除名下5个实名 毛线的支数如何计算的 ete out什么意思? 英文缩写 _ ETE _ ETE是什么意思 壁挂炉上的ete是什么问题 长春市哪里有补羽绒服的地方? 长春净月附近哪能织补啊 就是衣服坏了一个洞 想密缝 看不出来的那种 不想贴花 中东或是北方能吗 微信没聊天记录怎么拍一拍 洛伦兹力和安培力区别 被封了,要用绑定的手机号码自助解封,但是手机号码没用了,怎么办? 被冻结了但里面绑定的手机号码是空号 要怎么解冻? 被封了,手机号也注销了,要怎样解封 被封了,要用绑定的手机号码自助解封,但是手机号码没用了,怎么办? 被冻结了但里面绑定的手机号码是空号 要怎么解冻? 被封了,手机号也注销了,要怎样解封 如何炒羊血嫩又好吃 PPt如何点击显示文字 干海贝煮多长时间才熟 花之歌是谁的散文诗? 肝癌介入治疗副作用? 我有两张信用卡,可不可以用一个银行的信用卡还另一个银行的钱呢? 店面装修要办什么证件? 商业银行贷款按照贷款期限分为 为什么叫《春娇与志明》? 志明与春娇百度网盘完整资源哪里有? 圈中带斜杠的符号是什么意思? 清理笔记本风扇灰尘步骤 如何清理笔记本风扇灰尘 电脑风扇灰尘很厚了一般都是怎么清洗的 ?? 苹果手机看word不分页 兴义海拔多少米高 贵州安龙县和兴义市海拔哪个高些 兴义云屯国际生态体育公园海拔多少 欧盟的cr法案属于什么类型的非关税壁垒其特点是什么 1938年之前与之后,侵华日军的军服是不一样的 oppor7怎么给热点定时 为什么Office2003Excel VBA的Application.Input函数在单元格有条件格式时不能输入区域数据(Type:=8)?