JVM调优
令仔很忙
这个作者很懒,什么都没留下…
展开
-
OutOfMemoryError异常----Java堆溢出
Java堆溢出 在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下面都叫OOM)异常的肯能,下面就通过一些实例来验证异常发生的场景。 在下面举的例子中,在注释中会设定一些虚拟机的参数,在”VM Args”后边,如果你是用控制台命令来执行的程序,直接把这些参数放到Java命令之后就行,如果用的开发工具,Eclips原创 2016-08-08 15:21:03 · 1940 阅读 · 1 评论 -
【JVM调优(一)】----JAVA内存模型抽象结构
线程之间的通信机制有两种:共享内存和消息传递。 Java线程之间的通信由Java内存模型(JMM)控制,JMM控制一个线程对共享变量的写入什么时候对另一个线程可见。下图是JMM的抽象结构: 线程之间的共享变量存储在主内存中(Main Memory),每一个线程都有自己的本地内存(Local Memory),本地内存中存储着读/写共享变量的副本。 由上图可以看出,线程之间的通信原创 2016-08-04 09:37:20 · 4789 阅读 · 1 评论 -
【JVM调优】----内存溢出和内存泄漏
项目的开发,涉及到了服务器的运维,先来介绍下JVM相关的知识,也方便后期的使用。今天主要是说一说内存溢出和内存泄漏两件事。 内存溢出 从字面上来说,溢出,什么是溢出?就比如说你把一壶的水倒进一个小杯子里面,小杯子容量小,多出来的水就会溢出。就是你这个小杯子的容量撑不下你的一壶的水。用专业点的语言来说内存溢出,就是你申请内存容量的时候,系统无法给到你足够的内存容量大小,你申请了一个Inte原创 2016-11-05 17:32:01 · 3270 阅读 · 7 评论 -
性能调优(一)----Amdahl定律及木桶原理
什么是Amdahl定律? 首先的一个问题就是,这个怎么读啊???对于我这蹩脚的英语来说真是一脸懵逼。赶紧百度下:阿姆达尔定律,是由Gene Amdal 在1967年提出。阿姆达尔定律定义了穿行系统并行化后加速比的计算公式和理论上限。 加速比 = 优化前的系统耗时/优化后的系统耗时 加速比越高说明你的优化越明显。在这个地方还有另外一个公式: SpeedUp原创 2017-08-13 16:52:14 · 6763 阅读 · 1 评论 -
【JVM调优系列】----CPU过高的分析与解决方案
问题描述 服务器是8核32G的,也就是说同时可用的共有8个CPU,一个CPU可以使用高达100%,8个CPU的话可以高达800%。前两天发现了一个CPU过高的问题,平时项目运行CPU也就是在10%,但是前两天发布之后突然发现CPU一直在200%左右打转,一直稳高不降。下面的例子只是参考(当时的情况没有截图o(╯□╰)o)。执行top命令查看占用CPU高的进程。top -原创 2017-11-19 14:28:04 · 11874 阅读 · 6 评论 -
【JVM调优系列】----NewRatio与SurvivorRatio
-XX:NewRatio新生代(Eden + 2*S)与老年代(不包括永久区)的比值4 表示新生代 :老年代 = 1:4 ,意思是老年代占 4/5 -XX:SurvivorRatio2个Survivor区和Eden区的比值8 表示 两个Survivor : Eden = 2: 8 ,每个Survivor占 1/10 ...原创 2018-03-03 14:43:33 · 11883 阅读 · 1 评论