JVM优化及部分剥析
本文作者:FUNKYE(陈健斌),杭州某互联网公司主程。
前言
JVM是什么?
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
以上的说明我们随意去百度,google都可以查到相关解释,但是我们要了解jvm的哪些东西呢?
JVM内存调优
jvm调优,想必大家都了解不少了?这边我们来回忆一下调优所需要知道的相关细节.
1.full gc是什么?
full gc会对整个堆进行回收,一般普通gc即可,但是如果你刻意的去写一个不断创建新对象,并且内存分配过低时,可以使用jinfo –flag UseSerialGC,或者-XX:+PrintGC等操作来打印,可以看到起初一般都是普通的gc回收,这里涉及到复制算法,标记算法等等回收策略.但是等到内存不断的被挤占后,会发现打印的全是fullgc了,因为普通的gc已经无法满足当前的内存资源回收的情况了.但是fullgc的效率因为要回收整个堆,导致慢的情况发生.所以我们要避免full gc的发生.
我们可以详细看看导致的原因
1).年老代(Tenured)被写满
more >>