`

《Java性能优化权威指南》 试读笔记

 
阅读更多

    感谢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数据模型日志如何分析,如何使用工具进行监控等。还是要自己多多实践方可。其他章节应该有更详细介绍,到时候买本看看^_^!!
 

  • 大小: 59.1 KB
  • 大小: 58 KB
  • 大小: 64 KB
  • 大小: 89.3 KB
  • 大小: 69.6 KB
分享到:
评论

相关推荐

    Java程序性能优化 让你的Java程序更快、更稳定

    自己看了一下,感觉对性能优化有了更深的认识,全套版本,不是试读版

    大话JAVA性能优化试读样章高清PDF

    根据提供的文件内容,本章节主要涵盖了Java编程规范中关于命名约定的详细规定,这是在进行Java开发时确保代码规范性和可维护性的重要部分。以下是对文件中提及知识点的详细解读: 1. 命名规范:在编写Java代码时,...

    Java程序设计大学教程试读+课件(PDF)

    以Java语言为载体,通过讨论Java程序设计的一般过程和方法,重点讲述程序设计基础、面向对象程序设计、算法与数据结构、GUI程序设计和Web程序设计的知识,并涉及计算机科学基础、数据和控制、程序设计理论、软件工程...

    java程序设计大学教程试读+课件.rar

    在"Java程序设计大学教程试读+课件.rar"这个压缩包中,包含了两部分资源:Q学院.url可能是一个链接,指向了更多学习资源或在线课程平台,方便学生扩展学习;而"Java程序设计大学教程试读+课件"则可能是该教程的部分...

    Cortex-M3权威指南(中文)1

    《Cortex-M3权威指南》是一本专门为对ARM Cortex-M3处理器感兴趣的软件和硬件开发者编写的书籍。Cortex-M3是ARM公司推出的一种高效能、低功耗的微控制器核心,广泛应用于嵌入式系统设计。该书由Joseph Yiu撰写,宋岩...

    实战Java高并发程序设计-试读

    《实战Java高并发程序设计》是一本专注于Java并发编程实践的书籍,试读版提供了前两章的内容,为读者提供了一个初步了解并发编程基础的窗口。在Java领域,并发编程是构建高性能、高效率系统的关键技术,对于软件开发...

    Android移动性能实战试读文章

    在《Android移动性能实战试读文章》中,我们可以探索到Android平台上的应用程序性能优化的关键方面。这篇文章虽然只是试读版,但提供了丰富的信息,旨在帮助开发者提升应用的运行效率、用户体验以及整体性能。以下是...

    Java程序设计大学教程试读+课件

    "Java程序设计大学教程试读+课件"为那些对Java编程感兴趣的新手提供了丰富的学习资源。这个压缩包包含了一份PDF格式的教程和可能的课件,旨在帮助初学者系统、全面地理解Java编程。 首先,我们来讨论Java语言的基础...

    ORACLE DBA工作笔记 运维数据迁移与性能调优

    标题中提到的“ORACLE DBA工作笔记 运维数据迁移与性能调优”揭示了这本书籍主要围绕着Oracle数据库管理员(DBA)在日常工作中经常需要进行的两项关键任务:数据迁移和性能调优。作为一名Oracle DBA,不仅要负责...

    软件性能测试与LoadRunner实战试读

    《软件性能测试与LoadRunner实战试读》是针对IT专业人士,特别是测试人员的一份宝贵资源。LoadRunner是一款业界广泛使用的性能测试工具,由HP(现为Micro Focus)开发,它能够模拟大量用户并发操作,帮助识别系统在...

    Java程序设计大学教程试读+课件PDF.rar

    这个压缩包包含了教材的试读版本和相关的课件资源,帮助学习者深入理解Java编程。 1. **Java语言基础**: Java是一种面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年推出。它的设计目标...

    java程序设计大学教程试读+课件!!!

    本教程的试读部分和配套课件旨在帮助初学者掌握Java编程语言的基本概念、语法以及实际应用。 Java语言由Sun Microsystems(现为Oracle Corporation的一部分)于1995年推出,它以其“一次编写,到处运行”的理念,...

    《Java程序设计大学教程》试读版

    此试读版提供了对Java编程基础知识的初步了解,为全面学习Java打下坚实基础。以下是对该教程中核心知识点的详细阐述: 1. **Java概述**:Java是由Sun Microsystems开发的一种面向对象的编程语言,现在由Oracle公司...

    Java语言程序设计(基础篇)(英文版·第10版)试读版

    《Java语言程序设计(基础篇)(英文版·第10版)》是...通过这个试读版,读者可以对Java编程有一个初步的认识,为进一步深入学习打下坚实的基础。如果对Java编程感兴趣,建议购买完整版教材,以便系统学习所有内容。

Global site tag (gtag.js) - Google Analytics