专业的编程技术博客社区

网站首页 > 博客文章 正文

香啊!阿里P8架构师编译:深入理解JVM进阶指南pdf,GitHub星标99K

baijin 2024-10-26 08:09:09 博客文章 9 ℃ 0 评论

本书主要面向以Java为工作中心,并已具备一定知识技能的人员,例如对Java开发或安装管理有相关工作经验的开发人员或系统管理员。书中内容分为3大部分。

第一部分着重介绍了JVM和自适应运行时的作用及工作原理,还指出了自适应运行时以及JRockit的优势和劣势,以便在适当的时候解释什么是良好的Java编码实践。深入到JVM这个黑盒中,探查运行Java应用程序时到底发生了什么。理解第一部分的内容可以帮助开发人员和架构师理解某些设计决策的后果,进而做出更好的决策。这部分也可作为高校自适应运行时课程的学习资料。

第二部分着重介绍了JRockit Mission Control套件的具体功能,以及如何使用它来查找应用程序的性能瓶颈。对于想要对JRockit系统做性能调优以运行特定程序的系统管理员和开发人员来说,这部分内容非常有用。对于希望优化Java 应用程序以提高资源利用率、优化性能的开发人员来说,这部分内容也很有用。但应该记住的是,对JVM层面的调优也只有这么多了,对应用程序本身的业务逻辑和具体实现做调优其实是更简单、更有效的。本书将会介绍如何使用JRockit Mission Control套件来查找应用程序的瓶颈,以及如何控制硬件和程序运行的成本。

第三部分介绍了新近和即将发布的重要的JRockit相关技术,主要面向对Java技术发展方向比较感兴趣的读者。这部分内容着重讲解了Java虚拟化。

由于篇幅限制小编,所以只把部分知识点截图出来粗略的介绍,需要的程序员(媛)可以帮忙转发+关注,后台私信【学习】即可

内容简介

第1章起步

1.获取JRockit JVM

2.将应用程序迁移到Rockit

3.JRockit版本号的命名规则

4.获取帮助

第2章自适应代码生成

1.平台无关性

2.Java虚拟机

  • 基于栈的虚拟机
  • 字节码格式

3.代码生成策略

  • 纯解释执行
  • 静态编译
  • 完全JIT编译
  • 混合模式

4.自适应代码生成

  • 判断热方法
  • 优化动态程序

5.深入JIT编译器

  • 处理字节码
  • 字节码“优化器"
  • 优化字节码

6.代码流水线

  • 为什么JRocki没有字节码解释器
  • 启动
  • 运行时代码生成
  • 代码生成概述

7.控制代码生成

第3章自适应内存管理

1.自动内存管理

  • 自适应内存管理
  • 自动内存管理的优点
  • 自动内存管
  • 理的缺点

2.堆管理基础

  • 对象的分配与释放
  • 碎片与整理

3.垃圾回收算法

  • 引用计数
  • 引用跟踪
  • STW
  • 分代垃圾回收
  • 吞吐量与延迟
  • JRockit中的垃圾回收

4.性能与伸缩性

  • 线程局部分配
  • 更大的堆内存
  • 缓存友好性
  • NUMA架构
  • 大内存页
  • 自适应

5.近实时垃圾回收

  • 软实时与硬实时
  • JRockit Real Time

6.内存操作相关的API

  • 析构方法
  • Java中的引用
  • JVM的行为差异

7.陷阱与伪优化

8.JRockit中的内存管理

  • 基本参数
  • 压缩引用
  • 高级选项

第4章线程与同步

1.基本概念

  • 难以调试
  • 难以优化

2.Java API

  • synchronized关键字
  • java.lang.Thread类
  • java.util.concurrent包
  • 信号量
  • volatile关键字


3.Java中线程与同步机制的实现

  • Java内存模型
  • 同步的实现
  • 同步在字节码中的实现
  • 线程的实现

4.对于线程与同步的优化

  • 锁膨胀与锁收缩
  • 递归锁
  • 锁融合
  • 延迟解锁

5.陷阱与伪优化

  • Tedstopp TheadreCPresume和Thread.suspend
  • 双检查锁

6.相关命令行参数

  • 检查锁与延迟解锁
  • 输出调用栈信息
  • 锁分析
  • 设置线程栈的大小
  • 使用命令行参数控制锁的行为

第5章基准测试与性能调优

由于篇幅限制小编,所以只把部分知识点截图出来粗略的介绍,需要的程序员(媛)可以帮忙转发+关注,后台私信【学习】即可

1.为何要进行基准测试

  • 制定性能目标
  • 对性能进行回归测试
  • 确定优化方向
  • 商业应用

2.如何构建基准测试

  • 置身事外
  • 多次测量
  • 微基准测试
  • 测试前热身

3.确定测试目标

  • 吞吐量
  • 兼顾吞吐量、响应时间和延迟
  • 伸缩性
  • 电力消耗
  • 其他问题

4.工业级基准测试

  • SPEC基准测试套件
  • SipStone基准测试
  • DaCapo基准测试
  • 真实场景下的应用程序

5.基准测试的潜在风险

6.性能调优

  • 非规范化行为
  • 调优目标

7.常见性能瓶颈与规避方法

  • 命令行参数- XXaggressive
  • 析构函数
  • 引用对象过多
  • 对象池
  • 算法与数据结构
  • 误用System.gc0
  • 线程数太多
  • 锁竞争导致性能瓶颈
  • 不必要的异常
  • 大对象
  • 本地内存与堆内存

8.wait方法、notify方法与胖锁

  • 堆的大小设置不当
  • 存活对象过多
  • Java并非万能

第6章JRockit Mission Control套件

1.背景介绍

  • 采样分析与准确分析
  • 用途广泛

2.概述

  • JRockit Mssin Contro的服务器跨组件
  • JRockit Mssion Control的客户端组件
  • 术语介绍
  • 独立运行Rockit Mission Control
  • 在Ecipe中运行JRockit Mssin Control
  • 远程管理JRockit
  • 安全限制
  • 处理连接问题

3.更新点

4.调试JRockit Mission Control

第7章Management Console

1.JMX Management Console

2.Management Console

  • 一般信息标签组
  • MBean标签组
  • 运行时标签组
  • 高级标签组
  • 其他标签组

3.扩展JRockit Mission Control Console

第8章JRockit Runtime Analyzer

1.反馈信息的必要性

2.分析JRA记录

  • 一般信息标签组
  • 内存标签组
  • 代码标签组
  • 线程/锁标签组
  • 延迟标签组
  • 使用操作集

3.故障排除

第9章JRockit Flight Recorder

1.JRA进化

  • 关于事件
  • 记录引擎
  • 启动参数

2.在JRockit Mission Control中使用JFR

3.与JRA的区别

  • 范围选择器
  • 操作集
  • 关联键
  • 延迟分析
  • 异常分析
  • 内存分析

4.自定义事件

5.扩展JFR

第10章Memory Leak Detector

1.Java内存泄漏

  • 静态编程语言中的内存泄漏
  • 自动内存管理中的内存泄漏

2.检测Java中的内存泄漏

3.Memleak简介

4.追踪内存泄漏

5.交互式追踪内存泄漏

6.通用堆分析器

7.追踪内存分配

8.问题排查

第11章JRCMD

1.简介

2.要盖SIGQUIT信号处理句柄


3.JRCMD的限制

4.JRCMD命令参考

  • check flightrecording (R28)
  • checkjrarecording (R27)
  • command_ line
  • dump_ fightrecording (R28)
  • heap_ _diagnostics (R28)
  • hprofdump (R28)
  • kill management server
  • list_ vmflags (R28)
  • lockprofile_ print
  • lockprofile_
  • resetmemleakserver
  • oom. _diagnostics (R27)
  • print class. summary
  • print codegen. list
  • print memusage (R27)
  • print. memusage (R28)
  • print object. summary
  • print properties
  • print threads
  • print utf8ppol
  • print vm_ state
  • run optfile (R27)
  • run optfile (R28)
  • runfinalization
  • runsystemge
  • set yvmflag (R28)
  • start. flightrecording (R28)
  • sartmanagemet. sever
  • srecordino (R27)
  • stop. fightre
  • ecording (R28)
  • timestamp
  • verbosity
  • version

第12章JRockit Management API

1.JMAPI

2.JMXMAPI

  • JRockit内部性能计数器
  • 使用JMXMAPI构建可远程操作的JRCMD

第13章JRockit Virtual Edition

1.虚拟化简介

  • 全虚拟化
  • 半虚拟化
  • 其他虚拟化术语
  • 虚拟机管理程序
  • 虚拟化的优势
  • 虚拟化的劣势

2.Java虚拟化

  • JRockit Virtual Edition
  • 虚拟机镜像与管理框架
  • JRockit VE的优势
  • JRockit VE的限制

3.虚拟化能媲美真实环境吗

  • 高质量的热点代码采样
  • 自适应堆大小
  • 线程间的页保护


总目录

由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙转发+关注,后台私信【学习】即可

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表