优化程序代码
2015-07-03 23:58
423 查看
1.尽早释放无用对象的引用(XX = null;)
2.谨慎使用集合数据类型,如数组,树,图,链表等数据结构,这些数据结构对GC来说回收更复杂。
3.避免显式申请数组空间,不得不显式申请时,尽量准确估计其合理值。
4.尽量避免在类的默认构造器中创建、初始化大量的对象,防止在调用其自类的构造器时造成不必要的内存资源浪费
5.尽量避免强制系统做垃圾内存的回收,增长系统做垃圾回收的最终时间
6.尽量做远程方法调用类应用开发时使用瞬间值变量,除非远程调用端需要获取该瞬间值变量的值。
7.尽量在合适的场景下使用对象池技术以提高系统性能
总体而言,Java虚拟机的内存优化应从两方面着手:Java虚拟机和Java应用程序。前者指根据应用程序的设计通过虚拟机参数控制虚拟机逻辑内存分区的大小以使虚拟机的内存与程序对内存的需求相得益彰;后者指优化程序算法,降低GC负担,提高GC回收成功率。
2.谨慎使用集合数据类型,如数组,树,图,链表等数据结构,这些数据结构对GC来说回收更复杂。
3.避免显式申请数组空间,不得不显式申请时,尽量准确估计其合理值。
4.尽量避免在类的默认构造器中创建、初始化大量的对象,防止在调用其自类的构造器时造成不必要的内存资源浪费
5.尽量避免强制系统做垃圾内存的回收,增长系统做垃圾回收的最终时间
6.尽量做远程方法调用类应用开发时使用瞬间值变量,除非远程调用端需要获取该瞬间值变量的值。
7.尽量在合适的场景下使用对象池技术以提高系统性能
总体而言,Java虚拟机的内存优化应从两方面着手:Java虚拟机和Java应用程序。前者指根据应用程序的设计通过虚拟机参数控制虚拟机逻辑内存分区的大小以使虚拟机的内存与程序对内存的需求相得益彰;后者指优化程序算法,降低GC负担,提高GC回收成功率。
相关文章推荐
- PLA算法总结——Percetron Learning Algorithm(机器学习基石2)
- 安卓 ContentProvide
- eclipseJDBC
- Java Arrays,Collections中addAll使用方法和初始化容器方法
- django使用static的配置-django官网说明
- PHP如何关闭notice级别的错误提示
- 2015070303 - EffactiveJava笔记 - 第53条 接口优于反射机制
- (leetcode)contains duplicateIII[java]
- 在web项目中集成Spring
- 双向链表的C++实现
- springMVC第一天
- Java内存模型
- Java中函数的重载
- Ubuntu Python Setup
- Ubuntu Matlab 2014b Setup
- java中抽象类一般什么时候用到,用抽象类有什么好处?
- 【学习笔记】【C语言】文件的包含
- JedisPool使用原理和源代码
- Java可变长参数注意事项
- 2015070302 - EffactiveJava笔记 - 第52条 通过接口引用对象(2)