注:本系列文章均摘录自《深入理解Java虚拟机:JVM高级特性与最佳实践》,作者周志明,我看的是第一版,现在第二版已经出了,
1.在高性能的硬件上部署程序的两种主要方式:
(1)通过64位JDK来使用大内存
(2)使用若干个32位虚拟机简历逻辑集群来利用硬件资源
2.除了Java堆和永久代之外,以下区域还会占用较多内存,这里所有的内存总和会受到操作系统进程最大内存的限制
(1)Direct Memory:可以通过-XX:MaxDirectMemorySize调整大小,内存不足时抛出OutMemoryError或OutOfMemory:Direct buffer memory
(2)线程堆栈:可通过-Xss调整大小,内存不足时抛出StackOverflowError(纵向无法分配,即无法分配新的栈帧)或OutOfMemoryError:uable to create new native thread(横向无法分配,即无法建立新的线程)
(3)Scoket缓存区:每个Socket连接都有Receive和Send两个缓存区,分别占大约37KB和25KB的内存,如果连接多的话,这块内存的占用也比较多,如果无法分配,则可能会抛出IOException:Too many open file异常。
(4)JNI代码:如果代码中使用JNI调用本地库,那本地库使用的内存也不在堆中。
(5)虚拟机和GC:虚拟机和GC的代码执行也要消耗一定的内存。
3.编译时间是指虚拟机的JIT编译器(Just In Time Compiler)编译热点代码(Hot Spot Code)的耗时。为了解决程序解释执行速度的问题,JDK1.2以后,虚拟机内置了两个运行时编译器,如果一段Java代码的调用次数到达一定程度,就会被判定为热代码,从而交给JIT编译器即时编译为本地代码,以提高运行速度(这就是HotSpot虚拟机名字的由来)。Java运行期编译的最大缺点就是编译需要消耗程序正常的运行时间,也就是”编译时间“。
虚拟机提供了一个参数-Xint禁止编译运作,强制虚拟机堆字节码采用纯解释方式执行。
当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器,另外还有一个代号为C2的相对重量级的编译器,它能够提供更多的优化措施。
可以通过以下几个参数要求虚拟机生成GC日志:-XX:+PrintGCTimeStamps(打印GC停顿时间)、-XX:+PrintGCDetails(打印GC详细信息)、-verbose:gc(打印GC信息,输出内容已经被前一个参数包括,可以不写)、-Xloggc:gc.log。
可以把-Xms和-XX:PermSize参数值分别设置为-Xmx和-XX:MaxPermSize参数值,强制虚拟机在启动的时候就把老年代和永久代的容量固定下来,避免运行时自动扩展。
在vm参数-XX:+DisableExplicitGC屏蔽掉System.gc();
相关推荐
java虚拟机(JVM)调优案例分析与Eclipse性能调优实战
java虚拟机(JVM)调优案例分析与MyEclipse性能调优实战
JVM实战-JVM调优案例分析与MyEclipse性能调优实战
学习笔记——JVM性能调优之 jstat(csdn)————程序
大厂架构师-日均百万订单量的JVM优化与高级GC调优策略实战(5.8G) 〖课程介绍〗: 来自顶尖大厂的架构师级JVM优化与GC调优策略实战课程,是具备有尖端技术的优化课程。在课程内容上几乎不用过多的介绍,单是查阅目录就...
一.java内存结构 2 二 垃圾收集算法: 3 三 JVM参数 4 四 JVM的垃圾回收集器 7 五 常用参数设置 7
JVM下篇:性能监控与调优篇
JVM性能监控与调优实战课程,作为整篇课程的重中之重,非常值得同学们参考学习。课程前端讲解了JVM的性能监控和调优的概述,对调优的的方法和工具进行讲解学习,让同学们掌握方法,理解知识。课程的中间阶段我们进行...
JVM下篇:性能监控与调优篇.7z
马老师jvm实战调优课堂笔记,需要的小伙伴赶紧下载
每个使用Java的开发者都知道Java字节码是在JRE中运行,而JVM则是JRE中的核心组成部分,承担分析和执行Java字节码的工作,而Java程序员通常并不需要深入了解JVM运行情况就可以开发出大型应用和类库。尽管如此,如果你...
第五节:Java运行时数据区和常用指令 ··································· 62 第六节:JVM调优必备理论知识-GCCollector-三色标记 ·············· 75 第七节:PS...
long果 深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)。讲解相当详细,值得一看。下载仅供参考学习,侵权联删。
JVM调优实战
1. JVM调优 1.1 JVM调优总结(一)-一些概念 1.2 JVM调优总结(二)-一些概念 1.3 JVM调优总结(三)-基本垃圾回收算法 1.4 JVM调优总结(四)-垃圾回收面临的问题 1.5 JVM调优总结(五)-分代垃圾...4.3 深入理解JVM
如何配置jvm参数,并且调优,适合各路开发者,
《深入理解JVM & G1 GC》主要为学习Java语言的学生、初级程序员提供GC的使用参考建议及经验,着重介绍了G1 GC。中国的软件开发行业已经有几十年了,从目前的行业发展来看,单纯的软件公司很难有发展,目前流 资源太...
网上下载的JVM调优实战, 值得一下
深入理解JVM.
深入浅出jvm虚拟机视频大全(jvm性能调优+内存模型+虚拟机原理)