博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java内存模型优化建议
阅读量:7078 次
发布时间:2019-06-28

本文共 616 字,大约阅读时间需要 2 分钟。

八、Java编程建议

根据GC的工作原理,我们可以通过一些技巧和方式,让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程序的暂停时间。

转载地址:http://ubcml.baihongyu.com/

你可能感兴趣的文章
Essential Grid for ASP.NET MVC
查看>>
PDA使用异常指导手册
查看>>
goroutine背后的系统知识
查看>>
ubuntu安装nrpe无法安装问题
查看>>
命令操作
查看>>
SAN 光纤交换机配置远距离级联(EF)操作
查看>>
Web性能优化方案
查看>>
关于proteus闪退问题
查看>>
Android :实现一个手机卫士的一些要点
查看>>
mysql的备份与恢复
查看>>
Python SocketServer 网络服务器的框架一:基本知识
查看>>
psutil模块基础学习
查看>>
解决Windows8下IE10无法打开的故障
查看>>
MFSM 迁移工具使用教程
查看>>
我的友情链接
查看>>
从MYSQL到oracle的迁移以及备份
查看>>
Windows server 2008 R2 AD安装实录
查看>>
Mac下Android Studio中获取SHA1和MD5
查看>>
iOS 更改状态栏颜色和隐藏状态栏
查看>>
技术公司团队如何使用git代码托管工具
查看>>