JVM性能调优: JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配, ...
分类:
其他好文 时间:
2017-09-02 12:55:53
阅读次数:
184
http://blog.csdn.net/wenhuayuzhihui/article/details/52300088 ParallelScavenge + Serial Old: PSYoungGen(新生代) ParOldGen(老年代) PSPermGen(永久代) Serial + Ser ...
分类:
其他好文 时间:
2017-08-23 17:32:56
阅读次数:
182
HBase的几种调优(GC策略,flush,compact,split) 一:GC的调优 1.jvm的内存 新生代:存活时间较短,一般存储刚生成的一些对象 老年代:存活时间较长,主要存储在应用程序中生命周期较长的对象 永久代:一般存储meta和class的信息 2.GC策略 Parrallel Ne ...
分类:
其他好文 时间:
2017-08-22 23:13:39
阅读次数:
174
JConsole 一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序 ...
分类:
编程语言 时间:
2017-08-14 10:01:35
阅读次数:
185
整体考虑堆大小 -Xms3550m, 初始化堆大小。通常情况和-Xmx大小设置一样,避免虚拟机频繁自动计算后调整堆大小。 -Xmx3550m,最大堆大小。 考虑分代设置堆大小 首先通过jstat等工具查看应用程序正常情况下需要堆大小,再根据实际情况设置。 新生代 -xmn2g,新生代大小。Sun官方 ...
分类:
其他好文 时间:
2017-08-04 17:37:26
阅读次数:
241
这里以jdk1.8做讲解。Jdk1.8的分代去掉了永久代,只分为新生代(有的也译为年轻代)和年老代。 名词解释: 系统吞吐量:用于处理应用程序处理事务的线程数与用于GC的线程数的比。 pause time:进行GC时,暂停处理应用程序事务线程的时间。 JVM运行内存别分为新生代和年老代。新生代包含一 ...
分类:
编程语言 时间:
2017-07-27 21:20:22
阅读次数:
269
一、引言:永久代为什么被移出HotSpot JVM了? 详见:JEP 122: Remove the Permanent Generation 原因主要有两个: 1、由于Permanent Generation内存经常不够用或发生内存泄露,引发恼人的java.lang.OutOfMemoryErro ...
分类:
其他好文 时间:
2017-07-26 18:05:19
阅读次数:
140
在集群中部署Storm应用程序的时候报错,并通过jdk自带的jconsole监控发现,永久代内存瞬间爆炸了 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cacheSer ...
分类:
其他好文 时间:
2017-07-24 13:17:17
阅读次数:
270
如果想观察JVM进程占用的堆内存,可以通过命令工具jmap或者可视化工具jvisualvm.exe。JVM这些启动参数都拥有默认值,如果想了解JVM的内存分配策略,最好手动设置这些启动参数。再通过JDK提供的工具的统计结果,进行对比,就比较容易理解这些内存分配的理论知识。运行环境是win7 32位操 ...
分类:
其他好文 时间:
2017-07-24 13:05:03
阅读次数:
190
Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。为什么要分代?堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中。..
分类:
编程语言 时间:
2017-07-20 14:17:02
阅读次数:
175