写点什么

太香!终于有阿里大牛用 677 页笔记,把 Java 程序性能优化讲明白了

用户头像
周老师
关注
发布于: 2021 年 05 月 21 日

前言

每个公司都要求程序员写出性能良好、维护性强的代码,各种高端职位的任职要求也会把优化作为必选要求之一。当业务重构时,以及各种互联网大促前,也都期望的性能能变得更好。如何提高性能?简单的办法是升级硬件,或者购置更多的机器水平扩展,从而减少单机负荷以实现性能提高。

这些办法简单粗暴,虽然效果立竿见影,但长期来看,投入大,产出小。随着中越来越多“坏味道”代码的堆积,这些办法的效果越来越不明显,提高单机的性能迫在眉睫,那么有没有优化 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 语言基础而想进一步提高开发水平的程序员。

欢迎大家扫码来关注公众号博主,获取文章全部资料,此公众号会持续更新技术干货、不定期分享 Java 进阶面试宝典、Java 核心知识、架构书籍电子版

a 进阶面试宝典、Java 核心知识、架构书籍电子版


用户头像

周老师

关注

精通java热衷于分享java领域资料,感谢支持 2020.06.09 加入

还未添加个人简介

评论

发布
暂无评论
太香!终于有阿里大牛用677页笔记,把Java程序性能优化讲明白了