感谢iteye,试读活动又开始了!
《Java性能优化权威指南》从目录结构来看,本书覆盖了从操作系统、JVM到JAVA应用各个层面的性能监控、性能分析、性能调优,包括jvm基本原理、基本性能调优方式、调优技巧、性能监控工具、一些高效的基准测试等。总体来讲非常全面,java性能优化方面不可多得的好书,推荐大家认真阅读。对我来说,收获颇丰,赞!!
在阅读第4章前,特意补充点知识,第1章 策略、方法和方法论。2、JVM基础知识。
在生产环境下,我们通过JVM监控,定位到出现性能问题的根本原因,才能针对JVM进行调优。主要过程:JVM性能监控--> 性能分析-->性能调优
Chapter4 JVM性能监控
主要内容 基本的GC数据模型日志如何分析,如何使用工具进行监控等
不再累赘了,详细看看书吧。
GC日志解析:
启动JVM时,加入相关参数:-XX:+PrintGCDetails -XX:+PrintGCTimeStamps
[GC [PSYoungGen: 47265K->2888K(152896K)] 47265K->2888K(502464K), 0.0219235 secs] [Times: user=0.03 sys=0.00, real=0.03 secs] ① [Full GC (System) [PSYoungGen: 2888K->0K(152896K)] [PSOldGen: 0K->2848K(349568K)] 2888K->2848K(502464K) [PSPermGen: 9756K->9756K(65536K)], 0.0486615 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] ② [GC [PSYoungGen: 131072K->9330K(152896K)] 133920K->12178K(502464K), 0.0312386 secs] [Times: user=0.05 sys=0.02, real=0.03 secs] [GC [PSYoungGen: 140402K->21011K(152896K)] 143250K->23859K(502464K), 0.1426033 secs] [Times: user=0.23 sys=0.01, real=0.14 secs] [GC [PSYoungGen: 152083K->21817K(240320K)] 154931K->34582K(589888K), 0.1067384 secs] [Times: user=0.14 sys=0.03, real=0.11 secs] [GC [PSYoungGen: 240313K->21820K(240320K)] 253078K->46106K(589888K), 0.1309331 secs] [Times: user=0.17 sys=0.06, real=0.13 secs]
解析①
GC:minor GC,回收新生代区域
PSYoungGen:PS表示垃圾收集器类型(并行回收);youngGen :新生代
[GC [PSYoungGen: 47265K->2888K(152896K)] : 新生代数据从GC前47265K到GC后2888K,新生代区域大小为152896K
47265K->2888K(502464K), 0.0219235 secs]:java堆(新生代和老年代)占用从GC前47265K到GC后2888K,java堆(新生代和老年代)大小为502464K,用时0.0219235 secs
[Times: user=0.03 sys=0.00, real=0.03 secs] :表示CPU使用时间,user:垃圾回收cpu占用时间,sys:垃圾回收器调用执行操作系统调用消耗的cpu时间。real:GC实际时间
解析②
Full GC (System):表示system.gc()调用产生的full GC
[PSYoungGen: 2888K->0K(152896K)] :同Minor GC部分;Full GC直接把新生代区域数据copy到老年代
[PSOldGen: 0K->2848K(349568K)] :老年代数据从0增加到2848K,old Geneerator大小349568K
2888K->2848K(502464K) : java堆(新生代和老年代)总体大小变化
[PSPermGen: 9756K->9756K(65536K)], 0.0486615 secs]:永久代大小65536K,数据从Full GC一直保持9756K
纠错:P80 Line8
在这个例子中,垃圾收集器使用0.06秒用户态CPU时间。
不同GC类型,有所不同;
如serial GC: [GC [DefNew: 47265K->2888K(152896K)]
JVM监控工具
离线分析工具:GCLogViewer
通过JVM 参数生成生产环境下日志文件:-Xloggc <filename>
以图形的形式还原部分监控情况,如图:
其他如:gchisto
在线图形监控:
①VisualVM
反应实时JVM各个参数:线程、Heap等情况
② Jconsole
思考:何时需要进行Full GC呢?
本章讲了基本的GC数据模型日志如何分析,如何使用工具进行监控等。还是要自己多多实践方可。其他章节应该有更详细介绍,到时候买本看看^_^!!
相关推荐
轻松道破软件性能调优方法论和具体实现路径,全面细致,一本书搞定性能优化
JAVA 性能优化最全集合,深入讲解编程技巧和原理,程序员好助手
自己看了一下,感觉对性能优化有了更深的认识,全套版本,不是试读版
《实战JAVA虚拟机—JVM故障诊断与性能优化》,全本书籍,高清,有书签目录,非试读版本,通俗易懂,必不可少
以Java语言为载体,通过讨论Java程序设计的一般过程和方法,重点讲述程序设计基础、面向对象程序设计、算法与数据结构、GUI程序设计和Web程序设计的知识,并涉及计算机科学基础、数据和控制、程序设计理论、软件工程...
java程序设计大学教程试读+课件.rar
英文版《Arduino robotics》译本:这本书是为那些想更多了解关于Arduino和机器人的爱好者们写的。虽然有些项目是面向大学生和成人的,但涵盖机器人项目的初级章节也同样适合初中生和高中生阅读。...
挺不错的一本适合初学者的JAVA书籍,这里只是试读样章
《Head First Java》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会...
java程序设计大学教程试读+课件!!!java程序设计大学教程试读+课件!!!
那么请选择《Arduino机器人权威指南》吧!John-David Warren、Josh Adams和Harald Molle会带你走进机器人的世界,教会你如何寻找配件、怎样制作机器人、怎样进行编程,甚至告诉你如何对机器人进行安全测试。 本书...
Java程序设计大学教程试读(pdf)+课件(ppt)
Java程序设计大学教程试读+课件PDF.rar
JAVA(JDK5.0)学习笔记 优秀开发图书试读 免分
注重算法的核心思想及解决实际问题,详细讲解相关数学理论及编程实现技巧,面试必备
这是试读版,只有前两章,不过是原版不是扫描版。我会在我的博客记录我的阅读笔记。
《Java程序设计《Java程序设计大学教程》试读版 大学教程》试读版 《Java程序设计大学教程》试读版
2015数据结构高分笔记的试读版,可以帮助希望购买这本书的人了解一下此书的风格!强烈推荐!