5.14日下午 jvm 调优 java社区日上的jvm调优,这个哥们的pdf 很长 看着也很细 哈哈 分享给大家了(这个pdf 的主人啊 相信你共享没意见 那天讨论挺热烈的嘛嘿嘿)
另外还有个 工作中 从哪个谁谁谁那要来的 2个jvm相关的ppt 哈哈也分享个大家了...
摘点儿出来先睹为快哈哈
Java虚拟机的种类:
Oracle Java虚拟机
–原Sun Java虚拟机
–原BEA JRockit
–两种Java虚拟机,都运行在Windows、Linux、Solaris平台
HP Java虚拟机:
–与SUN JDK基本兼容,有自己独特的启动参数
–运行在HP UNIX上
IBM Java虚拟机:
–与Sun JDK基本兼容
–启动参数的写法风格与Sun JDK、HP JDK非常不同
–主要用于WebSphere、跑在AIX上的中间件服务器
开源Java虚拟机:
–与SUN JDK兼容
.......
Java虚拟机32 VS 64
尽量选择使用32位JDK:
–32位JDK在TPS测试中,结果比64位JDK要好;JDK 6.0启用指针压缩技术后,64位略微领先32位JDK
–主要适用于内存需求较小,CPU密集型应用
64位JDK主要用于大内存应用:
–突破4G内存限制
–吞吐量并没有提高
–主要用于大内存需求的系统
–尽量启用指针压缩技术
IBM: -Xcompressedrefs
SUN:-d64 -XX:+UseCompressedOops
BEA:-XXcompressedRefs=true
..........
常见GC算法:
–SUN、HP的GC算法
–JRockit的GC算法
–IBM JDK的GC算法
........
根据回收器,简单分为:
–串行–XX:+UseSerialGC
Out of Box算法,年轻代串行复制,年老代串行标记整理,主要用于桌面应用
–并行–XX:+UseParallelGC
年轻代暂停应用程序,多个垃圾收集线程并行的复制收集,年老代暂停应用程序,与串行收集器一样,单垃圾收集线程标记整理。JDK 6.0启用该算法后,默认启用了-XX:+UseParallelOldGC,性能大为提高
–并发(Concurrent Low Pause Collector) –XX:+UseConcMarkSweepGC
启用该参数,默认启用了-XX:+UseParNewGC;简单的说,并发是指用户线程与垃圾收集线程并发,程序在继续运行,而垃圾收集程序运行于其他CPU上。
–Garbage First (G1) Garbage Collector
-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC
SUN JDK 6.0 Update14引入,实际生产环境中还没有采用
常见GC算法--SUN、HP
并行算法示例:
–-server -Xms1536m -Xmx1536m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseParallelGC-XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -XX:SurvivorRatio=2 -XX:+DisableExplicitGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/tmp/server_gc$$.log
并发算法示例:
–-server -Xms1536m -Xmx1536m -XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC-XX:+UseParNewGC -XX:SurvivorRatio=2 -XX:MaxTenuringThreshold=16 -XX:+DisableExplicitGC -XX:+CMSPermGenSweepingEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSParallelRemarkEnabled -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/tmp/server_gc$$.log
常见GC算法--JRockit
根据回收器,简单分为:
–-XgcPrio:throughput
默认算法,主要用于桌面应用
–-XgcPrio:pausetime
-XgcPrio:pausetime -XpauseTarget:210ms 因为免费,所以最低只能设置到200ms。200ms是Real-Time JDK的分界线
–-XgcPrio:deterministic
动态调整的垃圾收集策略
示例:
–-Xms1024m -Xmx1024m -Xgcprio:pausetime -Xpausetarget=210ms -XgcReport -XgcPause -Xverbose:memory
常见GC算法--IBM
根据回收器,简单分为:
–-Xgcpolicy:optthruput
默认策略。对于吞吐量比短暂的GC 停顿更重要的应用程序,通常使用这种策略。每当进行垃圾收集时,应用程序都会停顿。
–-Xgcpolicy:optavgpause
通过并发地执行一部分垃圾收集,在高吞吐量和短GC 停顿之间进行折中。应用程序停顿的时间更短。
–-Xgcpolicy:gencon
以不同方式处理短期存活的对象和长期存活的对象。采用这种策略时,具有许多短期存活对象的应用程序会表现出更短的停顿时间,同时仍然产生很好的吞吐量。
–-Xgcpolicy:subpool
采用与默认策略相似的算法,但是采用一种比较适合多处理器计算机的分配策略。建议对于有16 个或更多处理器的SMP 计算机使用这种策略。这种策略只能在IBM pSeries® 和zSeries® 平台上使用。需要扩展到大型计算机上的应用程序可以从这种策略中受益。
示例:
–-Xms768m -Xmx1024m -Xmn256m -Xgcpolicy:gencon
选择GC算法,遵循以下原则:
–评估程序类型
桌面应用还是服务器端应用
吞吐量优先还是响应时间优先
–仅适用64位JDK的算法
比如在IBM AIX 64位JDK环境下,当heap区大于16G后,subpool明显性能提高
–确定GC算法之后,再逐步调整小参数
-Xmn(-XX:NewSize -XX:MaxNewSize)
-XX:SurvivorRatio
-XX:MaxTenuringThreshold
.......
–测试期间实时监控
SUN、HP、JRockit都可以通过jstat命令进行实时监控
避免使用jmap -histo,原因是可能会造成Full GC
更多 看附件吧.....
分享到:
相关推荐
JVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM调优课件.zipJVM...
标题中提到了JVM原理、JVM调优、JVM内存模型和JAVA并发,这些都是Java虚拟机(JVM)相关的核心概念。JVM是运行Java字节码的虚拟计算机,为Java提供了一个跨平台的环境,确保Java程序可以在不同的操作系统上运行而...
2011.5.14日下午 jvm 调优 java社区日上的jvm调优,这个哥们的pdf 很长 看着也很细 哈哈 分享给大家了(这个pdf 的主人啊 相信你共享没意见 那天讨论挺热烈的嘛嘿嘿)另外附加2个工作中从哪个谁谁哪 要来的2个jvm 相关...
JAVA应用JVM原理及参数调优深入讲解视频.5 JAVA应用JVM原理及参数调优深入讲解视频.6 JAVA应用JVM原理及参数调优深入讲解视频.7 JAVA应用JVM原理及参数调优深入讲解视频.8 JAVA应用JVM原理及参数调优深入讲解视频.9 ...
在现代的软件开发与运行环境中,Java虚拟机(JVM)的性能调优是非常重要的一环,特别是在处理大型应用程序或者服务时,合适的JVM调优能够显著提升系统性能和稳定性。本篇文档详细介绍了JVM调优工具的命令使用及其...
JVM 原理讲解和调优 JVM(Java Virtual Machine,Java 虚拟机)是 Java 语言的核心组件,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM 的主要功能是将 Java 字节码转换为...
JVM调优是指通过调整JVM的各种参数来优化Java应用程序的运行效率,减少资源消耗,提升用户体验。本文将详细介绍JVM调优的相关知识,包括调优参数、调优方法及调优手段等。 #### 二、JVM数据类型与存储机制 在深入...
分析常见的JVM调优技术及其相关条件,以及在实战中怎么使用到相关的技术进行调优,比较适合中高级开发进行学习,适合对JVM理解较深的开发学习
标题《JVM系列之性能调优参考手册(实践篇)》涉及的知识点主要集中在Java虚拟机(JVM)性能调优的实践操作。JVM作为Java程序运行的基础环境,对程序性能有着决定性影响。本手册的目的是指导开发者如何对JVM进行性能...
总结来说,从JVM入门到实战调优,涉及了Java程序从编译到执行的全过程,包括Class文件格式、类加载、内存模型、运行时数据区、垃圾收集策略以及调优实践等多个层面。深入理解和掌握这些知识,不仅有助于提升Java程序...
JVM类加载机制是Java虚拟机中的一种机制,它负责加载Java类文件到内存中,以便执行Java程序。类加载机制分为五个阶段:加载、验证、准备、解析和初始化。 加载 加载是类加载过程中的一个阶段,这个阶段会在内存中...
java6 JVM 调优参数大全 -XX
JVM 调优是 Java 开发者们不可或缺的技能,它直接影响着 Java 应用程序的性能和稳定性。本笔记是马老师的 JVM 调优实战笔记,涵盖了 JVM 的概述、内存结构、堆内存、垃圾回收算法、JVM 参数等方面的内容。 JVM 调优...
### 马士兵JVM调优笔记知识点梳理 #### 一、Java内存结构 Java程序运行时,其内存被划分为几个不同的区域,包括堆内存(Heap)、方法区(Method Area)、栈(Stack)、程序计数器(Program Counter Register)以及...
Java虚拟机(JVM)是Java程序运行的基础,它的调优是提高应用程序性能的关键环节。在JVM调优实践中,了解各个运行时数据区的工作原理至关重要。以下是对这些区域的详细解析: 1. **虚拟机栈**:每个线程都有一个...
《Monkey老师的JVM调优深度解析》 在Java开发领域,JVM(Java Virtual Machine)是每一个程序员都需要深入了解的关键组成部分。Monkey老师的JVM调优课程,无疑为我们提供了一个宝贵的平台,来深入探究JVM的工作原理...
本文将围绕JVM调优展开讨论,重点分析数据类型、堆与栈的关系及其对程序性能的影响,并探讨Java中的参数传递机制。 #### 二、数据类型 在Java虚拟机中,数据类型分为两大类:基本类型和引用类型。 - **基本类型**...
JVM调优实战 本文档旨在介绍JVM调优实战的各个方面,包括JVM内存、垃圾回收、性能优化等。通过对JVM内存结构、垃圾回收机制和性能优化策略的详细讲解,帮助读者深入理解JVM的工作原理和优化方法。 1. JVM内存结构 ...