Java性能优化实践(JVM调优策略、工具与技巧)_第1页
Java性能优化实践(JVM调优策略、工具与技巧)_第2页
Java性能优化实践(JVM调优策略、工具与技巧)_第3页
Java性能优化实践(JVM调优策略、工具与技巧)_第4页
Java性能优化实践(JVM调优策略、工具与技巧)_第5页
已阅读5页,还剩297页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java性能优化实践JVM调优策略、工具与技巧注:原文档电子版(非扫描),需要的请下载本文档后留言谢谢。目录\h第1章明确优化与性能\h1.1关于Java性能的误解\h1.2Java性能概览\h1.3作为实验科学的性能\h1.4性能分类方法\h1.4.1吞吐量\h1.4.2延迟\h1.4.3容量\h1.4.4利用率\h1.4.5效率\h1.4.6可扩展性\h1.4.7降级\h1.4.8各种性能观测之间的关联\h1.5阅读性能图\h1.6小结\h第2章JVM概览\h2.1解释和类加载\h2.2执行字节码\h2.3HotSpot简介\h即时编译简介\h2.4JVM内存管理\h2.5线程和Java内存模型\h2.6认识不同的JVM\h关于许可证的说明\h2.7JVM的监控和工具\hVisualVM\h2.8小结\h第3章硬件与操作系统\h3.1现代硬件简介\h3.2内存\h内存高速缓存\h3.3现代处理器特性\h3.3.1翻译后备缓冲器\h3.3.2分支预测和推测执行\h3.3.3硬件存储器模型\h3.4操作系统\h3.4.1调度器\h3.4.2时间问题\h3.4.3上下文切换\h3.5一个简单的系统模型\h3.6基本探测策略\h3.6.1利用CPU\h3.6.2垃圾收集\h3.6.3I/O\h3.6.4机械共鸣\h3.7虚拟化\h3.8JVM和操作系统\h3.9小结\h第4章性能测试模式与反模式\h4.1性能测试的类型\h4.1.1延迟测试\h4.1.2吞吐量测试\h4.1.3负载测试\h4.1.4压力测试\h4.1.5耐久性测试\h4.1.6容量规划测试\h4.1.7退化测试\h4.2最佳实践入门\h4.2.1自上而下的性能测试\h4.2.2创建一个测试环境\h4.2.3确定性能要求\h4.2.4Java特有的问题\h4.2.5将性能测试当作软件开发生命周期的一部分\h4.3性能反模式\h4.3.1厌倦\h4.3.2填充简历\h4.3.3同侪压力\h4.3.4缺乏理解\h4.3.5被错误理解的问题/不存在的问题\h4.4性能反模式目录\h4.4.1被热门技术分心\h4.4.2被简单分心\h4.4.3性能调优天才\h4.4.4按照坊间传说调优\h4.4.5把责任归咎给驴\h4.4.6忽略大局\h4.4.7用户验收测试环境就是我的计算机\h4.4.8类似生产环境的数据很难表示\h4.5认知偏差与性能测试\h4.5.1还原论思维\h4.5.2确认偏差\h4.5.3战争的迷雾(行动偏差)\h4.5.4风险偏差\h4.5.5埃尔斯伯格悖论\h4.6小结\h第5章微基准测试与统计\h5.1Java性能测量\h5.2JMH\h5.2.1不是万不得已,不要做微基准测试(一个真实的故事)\h5.2.2关于何时使用微基准测试的启发\h5.2.3JMH框架\h5.2.4执行基准测试\h5.3JVM性能统计\h5.3.1误差类型\h5.3.2非正态统计\h5.4统计的解释\h5.5小结\h第6章理解垃圾收集\h6.1标记和清除\h垃圾收集术语\h6.2HotSpot运行时\h6.2.1对象的运行时表示\h6.2.2GC根和Arena\h6.3分配与生命周期\h弱分代假说\h6.4HotSpot中的垃圾收集\h6.4.1线程本地分配\h6.4.2半空间收集\h6.5并行收集器\h6.5.1新生代并行收集\h6.5.2老年代并行收集\h6.5.3并行收集器的局限性\h6.6分配的作用\h6.7小结\h第7章垃圾收集高级话题\h7.1权衡与可插拔的收集器\h7.2并发垃圾收集理论\h7.2.1JVM安全点\h7.2.2三色标记\h7.3CMS\h7.3.1CMS是如何工作的\h7.3.2用于CMS的基本JVM标志\h7.4G1\h7.4.1G1堆布局和区域\h7.4.2G1算法设计\h7.4.3G1的各阶段\h7.4.4用于G1的基本JVM标志\h7.5Shenandoah\h7.5.1并发压缩\h7.5.2获取Shenandoah\h7.6C4(AzulZing)\hLVB\h7.7IBMJ9中的均衡收集器\h7.7.1J9对象头\h7.7.2Balanced收集器的大数组\h7.7.3NUMA和Balanced收集器\h7.8遗留的HotSpot收集器\h7.8.1Serial和SerialOld\h7.8.2增量式CMS\h7.8.3已被废弃和删除的垃圾收集组合\h7.8.4Epsilon\h7.9小结\h第8章垃圾收集日志、监控、调优及工具\h8.1认识垃圾收集日志\h8.1.1开启垃圾收集日志记录\h8.1.2垃圾收集日志与JMX的对比\h8.1.3JMX的缺点\h8.1.4垃圾收集日志数据带来的好处\h8.2日志解析工具\h8.2.1Censum\h8.2.2GCViewer\h8.2.3对于同一数据的不同可视化效果\h8.3基本垃圾收集调优\h8.3.1理解分配行为\h8.3.2理解暂停时间\h8.3.3收集器线程和GC根\h8.4调优ParallelGC\h8.5调优CMS\h由碎片化导致的并发模式失败\h8.6调优G1\h8.7jHiccup\h8.8小结\h第9章JVM上的代码执行\h9.1字节码解释概览\h9.1.1JVM字节码\h9.1.2简单解释器\h9.1.3HotSpot特定细节\h9.2AOT编译和JIT编译\h9.2.1AOT编译\h9.2.2JIT编译\h9.2.3比较AOT和JIT\h9.3HotSpotJIT基础\h9.3.1Klass字、虚函数表和指针变换\h9.3.2JIT编译日志\h9.3.3HotSpot中的编译器\h9.3.4HotSpot中的分层编译\h9.4代码缓存\h碎片\h9.5简单JIT调优\h9.6小结\h第10章理解即时编译\h10.1认识JITWatch\h10.1.1基本的JITWatch视图\h10.1.2调试JVM和hsdi\h10.2介绍JIT编译\h10.3内联\h10.3.1内联的限制\h10.3.2调优内联子系统\h10.4循环展开\h循环展开小结\h10.5逃逸分析\h10.5.1消除堆分配\h10.5.2锁与逃逸分析\h10.5.3逃逸分析的限制\h10.6单态分派\h10.7内部函数\h10.8栈上替换\h10.9再谈安全点\h10.10核心库方法\h10.10.1内联方法的大小上限\h10.10.2编译方法的大小上限\h10.11小结\h第11章Java语言性能技术\h11.1优化集合\h11.2针对列表的优化考虑\h11.2.1ArrayList\h11.2.2LinkedList\h11.2.3ArrayList与LinkedList的对比\h11.3针对映射的优化考虑\h11.3.1HashMap\h11.3.2TreeMap\h11.3.3缺少MultiMap\h11.4针对集的优化考虑\h11.5领域对象\h11.6避免终结化\h11.6.1血泪史:忘记清理\h11.6.2为什么不使用终结化来解决这个问题\h11.6.3try-with-resources\h11.7方法句柄\h11.8小结\h第12章并发性能技术\h12.1并行介绍\h基本的Java并发\h12.2理解JMM\h12.3构建并发库\h12.3.1Unsafe\h12.3.2原子与CAS\h12.3.3锁和自旋锁\h12.4并发库总结\h12.4.1java.util.concurrent中的Lock\h12.4.2读/写锁\h12.4.3信号量\h12.4.4并发集合\h12.4.5锁存器和屏障\h12.5执行器和任务抽象\h12.5.1认识异步执行\h12.5.2选择一个ExecutorService\h12.5.3Fork/Join\h12.6现代Java并发\h12.6.1流和并行流\h12.6.2无锁技术\h12.6.3基于Actor的技术\h12.7小结\h第13章剖析\h13.1认识剖析\h13.2采样与安全点偏差\h13.3面向开发人员的执行剖析工具\h13.3.1VisualVM剖析器\h13.3.2JProfiler\h13.3.3YourKit\h13.3.4JavaFlightRecorder和JavaMissionControl\h13.3.5运维工具\h13.4现代剖析器\h13.5分配剖析器\h13.6堆转储分析\hhprof\h13.7小结\h第14章高性能日志和消息系统\h14.1日志\h对日志记录器做基准测试\h14.2设计一个影响较低的日志记录器\h14.3使用RealLogic库实现低延迟\h14.3.1Agrona\h14.3.2SimpleBinaryEncoding\h14.3.3Aeron\h14.3.4Aeron的设计\h14.4小结\h第15章Java9以及Java的未来方向\h15.1Java9中小的性能增强\h15.1.1分段式代码缓存\h15.1.2紧凑的字符串\h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论