java

位置:IT落伍者 >> java >> 浏览文章

Java优化编程--内存管理


发布日期:2018年03月08日
 
Java优化编程--内存管理

众所周知java的JVM有一套自己的垃圾回收机制因此在许多情况下并不需要java程序开发人员操太多的心然而也许也因为这样往往会造成java程序员的过分依赖而致使开发出来的程序得不到很好的优化或者说性能尚能提高

问题的关键在于不论JVM的垃圾回收机制做得多好计算机的硬件资源是有限的内存更是一项紧张资源因此虽然JVM为我们完成了大部分的垃圾回收但适当地注意编码过程中的内存管理还是很必要的这样能让JVM回收得更顺利更高效最大限度地提高程序的效率

mark避免在循环体内创建对象

……

Object obj = null//方式一

for(int i = i k(k) secs]

……

可以看到总共有kb的内存被回收耗时

JVM内存相关的参数

XXNewSize(Set the Newgeneralnation heap size)

XXMaxNewSize(Set the Maximum Newgeneralnation heap size)

XXSurvivorRatio(Set New heap size ratios)

Xms(Set minimum heap size)

Xmx(Set maximum heap size)

Xnoclassgc(取消垃圾回收)

Xss(设置栈内存的大小)

java XXNewSize = m XXMaxNewSize = m XXSurvivorRatio = Xms m Xmx m MyApplication

mark不同编译方法的类大小

)默认编译方式javac Kjava

长度=代码+源文件信息+代码行序号表

)调试编译方式javac g Kjava

长度=代码+源文件信息+代码行序号表+本地变量表

)代码编译方式javax gnone Kjava

长度=代码

mark经验之谈

尽早释放无用对象的引用(XX = null

尽量少使用finalize函数

注意集合数据类型如数组链表等数据结构这些数据结构对GC来说回收更复杂

避免在类的默认构造器中创建大量的初始化大量的对象

避免强制系统做垃圾内存回收

避免显式申请数组空间不得不显式申请时尽量准确估计其合理值

               

上一篇:编写Java无脚本的JSP页面

下一篇:Java网络编程之URI、URL研究专题一(图)