android怎么让GC运行的更加有效率

  1.最基本的建议就是尽早释放无用对象的引用。大多数程序员在使用临时变量的时候,都是让引用变量在退出活动域(scope)后,自动设置为 null.我们在使用这种方式时候,必须特别注意一些复杂的对象图,例如数组,队列,树,图等,这些对象之间有相互引用关系较为复杂。对于这类对象,GC 回收它们一般效率较低。如果程序允许,尽早将不用的引用对象赋为null.这样可以加速GC 的工作。

  2.尽量少用finalize函数。finalize函数是Java 提供给程序 员一个释放对象或资源的机会。但是,它会加大GC 的工作量,因此尽量少采用finalize 方式回收资源。

  3.如果需要使用经常使用的图片,可以使用soft应用类型。它可以尽可能将图片保存在内存中,供程序调用,而不引起 OutOfMemory.

  4.注意集合数据类型,包括数组,树,图,链表等数据结构,这些数据结构对GC 来 说,回收更为复杂。另外,注意一些全局的变量,以及一些静态变量。这些变量往往容易引起悬挂对象(dangling reference),造成内存浪费。
  5.当程序有一定的等待时间,程序员可以手动执行System.gc (),通知GC 运行,但是Java 语言规范并不保证GC 一定会执行。使用增量式GC 可以缩短Java 程序的暂停时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值