威力泰商城新版上线,多种产品大优惠,欲购从速。
SMT人才,半导体人才,防静电人才,PCB人才——电子人才招聘网

首页 > IT配件动态 > 小谈Java优化编程--内存管理

小谈Java优化编程--内存管理

发表于:2009-09-23 16:28:14   点击: 206

众所周知,java的JVM有一套自己的垃圾回收机制。因此在许多情况下并不需要java程序开发人员操太多的心。然而也许也因为这样,往往会造成java程序员的过分依赖而致使开发出来的程序得不到很好的优化,或者说性能尚能提高。   问题的关键在于,不论JVM的垃圾回收机制做得多好,计算机的硬件资源是有限的。内存更是一项紧张资源。因此虽然JVM为我们完成了大部分的垃圾回收。但适当地注意编码过程中的内存管理还是很必要的。这样能让JVM回收得更顺利更高效。最大限度地提高程序的效率。   mark-1:避免在循环体内创建对象。   ……   Object obj = null;//方式一   for(int i =0; i 91k(1984k),0.0027537 secs]   ……   可以看到总共有1984kb的内存被回收,耗时0.0027537秒。   JVM内存相关的参数   -XX:NewSize(Set the Newgeneralnation heap size)   -XX:MaxNewSize(Set the Maximum Newgeneralnation heap size)   -XX:SurvivorRatio(Set New heap size ratios)   -Xms(Set minimum heap size)   -Xmx(Set maximum heap size)   -Xnoclassgc(取消垃圾回收)   -Xss(设置栈内存的大小)   例:java -XX:NewSize = 128m -XX:MaxNewSize = 128m - XX:SurvivorRatio = 8 -Xms 512m -Xmx 512m MyApplication   mark-8:不同编译方法的类大小   (1)默认编译方式:javac K.java   长度=代码+源文件信息+代码行序号表   (2)调试编译方式:javac -g K.java   长度=代码+源文件信息+代码行序号表+本地变量表   (3)代码编译方式:javax -g:none K.java   长度=代码   mark-9:经验之谈   1.尽早释放无用对象的引用(XX = null; )   2.尽量少使用finalize函数。   3.注意集合数据类型,如数组,树,图,链表等数据结构,这些数据结构对GC来说回收更复杂。   4.避免在类的默认构造器中创建大量的,初始化大量的对象。   5.避免强制系统做垃圾内存回收。   6.避免显式申请数组空间,不得不显式申请时,尽量准确估计其合理值。

0 投票
标签: 内存


发表评论
称呼: 主页:

E-mail:web@epc100.net
版权所有 Copyright© 2008 - 2010 EPC信息网(http://www.epc100.net)
本网站部分文章来源于网络,如有侵权请与我们联系,我们会及时处理