描述下jvm的gc机制,常用的jvm调优方法,oom如何产生,如何处理oom 问题?
2016-10-14 22:22
363 查看
GC机制:分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们称该对象为"不可达的".GC 将负责回收所有"不可达"对象的内存空间。 jvm 调优方法: 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程序的暂停时间。
相关文章推荐
- JVM 调优 —— GC 长时间停顿问题及解决方法
- JVM 调优 —— GC 长时间停顿问题及解决方法
- JVM的GC机制及JVM的调优方法
- JVM 调优 —— GC 长时间停顿问题及解决方法
- JVM 调优 —— GC 长时间停顿问题及解决方法
- JVM 调优 —— GC 长时间停顿问题及解决方法
- 1 异常的概述和体系结构: jvm处理异常的方式和try。。。Catch处理异常:异常的抛出:如何处理多个异常:Throwable的常用的方法:异常的分类 自定义异常:
- JVM 调优 —— GC 长时间停顿问题及解决方法
- JVM 垃圾回收机制与GC性能调优
- 安卓AndroidStudio如何在同一个手机中安装两个相同的项目+++++自己处理的一些问题解决方法
- 垃圾回收机制(GC)原理以及jvm调优知识
- 常用处理兼容性问题的方法
- 在Web应用中,会用到大量的Ajax请求,在Ajax请求中存在的一个问题就是如何判断session超时,在网上找到的一个java中处理此问题方法:
- 深入JVM系列(二)之GC机制、收集器与GC调优
- JVM 各种OOM问题与解决方法
- 详解JVM类加载机制及类缓存问题的处理方法
- JVM性能调优 - 常用步骤 - 查看CPU、GC、内存 、查看tomcat 进程、数据库连接数 、tomcat连接
- 如何用Python处理分类和回归问题?附方法和代码
- 内存分析方法和JVM的java heap space问题处理
- 深入JVM系列(二)之GC机制、收集器与GC调优