覆盖 80% 以上 Java 性能调优场景,三年开发经验以下慎入

每个公司都要求程序员写出性能良好、维护性强的代码,各种高端职位的任职要求也会把优化作为必选要求之一。当业务重构时,以及各种互联网大促前,也都期望的性能能变得更好。如何提高性能?简单的办法是升级硬件,或者购置更多的机器水平扩展,从而减少单机负荷以实现性能提高。
这些办法简单粗暴,虽然效果立竿见影,但长期来看,投入大,产出小。随着中越来越多“坏味道”代码的堆积,这些办法的效果越来越不明显,提高单机的性能迫在眉睫,那么有没有优化 Java 自身的办法呢?
市场上关于这方面的书籍或者聚焦于简单的开发规范,或者是纯理论的讲解。本文尝试把 Java 性能优化和实际业务结合起来一起讲解,期望为读者提供一种可操作的指导来优化 Java 性能。
不管技术如何发展,Java 依然是一个充满活力的生态圈,学习 Java 的人也越来越多,但多数人学习 Java 虚拟机(JVM)时都会遇到瓶颈。本文旨在帮助 Java 人突破性能优化瓶颈。


本书的主要特色有:
专注于 Java 应用程序的优化方法、技巧和思想,并深度剖析 JDK 部分的实现。
具有较强的层次性和连贯性,深入剖析软件设计层面、代码层面和 JVM 虚拟机层面的优化方法。
理论结合实践,使用丰富的示例帮助读者理解理论知识。
目录:








需要获取这份手册的小伙伴可以一键三连之后 点击此处 凭截图免费获取
本书内容
本书主要介绍 Java 应用程序的优化方法和技巧,共分为 6 章。
第 1 章
介绍性能的基本概念、两个重要理论(木桶原理和 Amdahl 定律),以及系统调优的一般步骤与注意事项。
1.1 性能概述


1.2 性能调优的层次


1.3 基本调优策略和手段


第 2 章
从设计层面介绍与性能相关的设计模式、组件及有助于改善性能的软件设计思想。
2.1 善用设计模式


2.2 常用的优化组件和方法


第 3 章
从代码层面介绍如何编写高性能的 Java 代码,涉及的主要内容有字符串的优化处理、文件 I/O 的优化、核心数据结构的使用、Java 的引用类型及一些常用的惯例。
3.1 字符串优化处理


3.2 核心数据结构


3.3 使用 NIO 提升性能


3.4 引用类型


3.5 性能测试试工具 JMH


3.6 有助于改善性能的技巧


第 4 章
介绍并行程序开发的相关知识,以及如何通过多线程提高系统性能,涉及的主要内容有并发设计模式、多任务执行框架、并发数据结构的使用、并发控制方法、“锁”的优化、无锁的并行计算及协程。
4.1 并行程序设计模式


4.2JDK 多任务执行框架


4.3 JDK 并发数据结构


4.4 并发控制方法


4.5 锁的性能和优化


4.6 无锁的并行计算


4.7 协程


第 5 章
立足于 JVM 虚拟机层面,介绍如何通过设置合理的 JVM 参数提升 Java 程序的性能。
5.1 Java 虚拟机内存模型


5.2 JVM 内存分配参数


5.3 垃圾收集基础


5.4 常用调优案例和方法


5.5 实用 JVM 参数


5.6JVM 调优实战


第 6 章
主要介绍获取和监控程序或系统性能指标的各种工具,以及 Java 应用程序相关的故障排查工具。
6.1 Linux 命令行工具


6.2 indows 工具


6.3 JDK 命令行工具


6.4 JEConsole 工具


6.5 visual VM 多合一工具


6.6 visual VM 寸 0QI 的支持


6.7MAT 内存分析工具


6. 8MAT 对 0QI 的支持


6.9 来自 JRockit 的礼物——JMC


读者对象
想要通读本书并取得良好的学习效果,读者需要具备 Java 的基础知识。本书不是一本帮助 Java 初学者入门的书籍,而是一本介绍如何编写高质量 Java 程序的书籍,主要适合以下读者阅读:
拥有一定开发经验的 Java 开发人员;-Java 软件设计师和架构师;
系统调优人员;
有一定 Java 语言基础而想进一步提高开发水平的程序员。
就给大家展示到这里需要获取的小伙伴可以一键三连之后 点击此处 凭截图免费获取
评论