书籍作者:张永清 | ISBN:9787302654247 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:3195 |
创建日期:2024-06-27 | 发布日期:2024-06-27 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
《软件性能测试、分析与调优实践之路》主要分享作者在多年软件测试从业中积累的关于性能测试、分析诊断与调优技巧等方面的实战经验,帮助读者提升软件性能测试、分析诊断与调优的能力。本书配套PPT课件、作者微信答疑服务。
《软件性能测试、分析与调优实践之路》分为9章,内容包括软件性能测试、分析与调优基础,服务器的性能监控与分析,Web中间件的性能分析与调优,应用中间件的性能分析与调优,Java应用程序的性能分析与调优,MySQL数据库的性能分析,性能测试、分析与调优案例实践,安卓APP的性能分析,前端性能分析。其中,第7章利用LoadRunner、JMeter等常见性能测试工具,在HTTP、RPC、JDBC等常见的传输协议的基础上,结合实际的性能压测案例进行实践分析,剖析真实的性能测试分析与调优方法。
《软件性能测试、分析与调优实践之路》适合软件性能测试初学者、测试工程师、测试经理、研发经理、技术经理阅读,也适合作为高等院校或高职高专学习软件性能测试相关课程的教材和教学参考书。
张永清,从事功能测试、自动化测试、性能测试、Java软件开发、大数据开发、架构师等工作十多年,在自动化测试设计、性能测试设计、性能诊断、性能调优、分布式架构设计等方面积累了多年经验。参与过的系统涉及公安、互联网、移动互联网、大数据、人工智能等领域。先后任职于江苏飞搏软件、苏宁大数据研发中心、苏宁研究院、苏宁人工智能研发中心、紫金普惠研发中心、福特汽车工程研究有限公司,历任测试经理、技术经理、部门经理、高级架构师等职位。重点关注大数据、图像处理、高性能分布式架构设计等领域。著有图书《软件性能测试、分析与调优实践之路》《Robot Framework自动化测试框架核心指南》。
在经历了传统互联网时代和移动互联网时代之后,我们又迎来了大数据时代和人工智能(AI)时代。但是,不管哪个IT时代,软件的性能始终是用户体验的一个重要环节。如目前最火热的AI应用ChatGPT,?如果没有一个很快的性能,那么它在和人类对话时,就会显得很迟钝,其性能和稳定性直接决定了ChatGPT?能否从容地服务于全球17亿以上的用户访问。
本书升级说明
随着软件技术的发展和更新换代,软件系统越来越复杂,人工智能模型也越来越大,与之对应的是性能要求越来越高,系统稳定要求更加突出。正是在这样的背景和需求下,同时也在本书前一版《软件性能测试、分析与调优实践之路》大量读者的反馈和建议下,迎来了这本书的第2版。
本书在第1版的基础上,针对读者的建议做了很多修改和补充,主要包括:
?对第1章的性能调优技术和思想进行细化和补充完善。
?在第4章的应用中间件的性能分析与调优中补充了Spring Boot的性能调优。
?在第6章的MySQL数据库性能分析中增加了性能定位和调优实践。
?在第7章的性能测试、分析与调优案例实践中补充了更多的实践案例和笔者多年的经验总结。
?增加第9章前端性能分析。
?升级本书中用到的相关软件版本,以及对第1版中的部分错误进行修正和完善。
本书适合的读者
本书面向软件研发和测试岗的读者,理论和实践相结合,详细讲解软件性能分析、诊断和调优实践。本书的内容更侧重于如何去发现性能问题、分析诊断性能问题,以及对发现的性能问题进行调优。升级之后的第2版更加贴近当前软件测试技术的更新换代,笔者坚信读完本书的读者,肯定不会再为“性能问题”而发愁。
鸣 谢
学习和交流是一个持久的过程,我们需要不断地去适应这个高速发展的技术时代,软件技术永远在不断地变革,软件性能也会越来越快。从本书第1版的读者反馈情况来看,读者已经建立对本书的长期信任,所以这本书未来也会顺应技术的发展持续更新下去。
感谢读者对第1版的支持和建议,正是因为有了大家的支持和建议,才有了这本书的第2版。也感谢读者指出了第1版中很多的不足之处,才让笔者有了更大的写作动力。
特别感谢清华大学出版社夏毓彦编辑一直对我的支持和鼓励,特别感谢蒋彪等众多挚友在我最困难的时候给予很多的帮助,特别感谢福特中国企业技术高级总监黄纪南为本书写推荐序,特别感谢部门领导周扬对我的鼓励。
由于笔者水平和时间的限制,书中难免会存在一些不足之处,还请读者指正,也恳请读者提出更多宝贵的意见和建议。
笔者,于南京
2024年1月
第1章 性能测试、分析与调优基础 1
1.1 性能测试的基础 1
1.1.1 性能测试的分类 2
1.1.2 性能测试的场景 3
1.2 常见的性能测试指标 3
1.2.1 响应时间 3
1.2.2 TPS/QPS 3
1.2.3 并发用户 4
1.2.4 PV/UV 4
1.2.5 点击率 4
1.2.6 吞吐量 5
1.2.7 资源开销 5
1.3 性能测试的目标 5
1.4 性能测试的基本流程 6
1.4.1 性能需求分析 6
1.4.2 制定性能测试计划 7
1.4.3 编写性能测试方案 8
1.4.4 编写性能测试案例 9
1.4.5 搭建性能测试环境 10
1.4.6 构造性能测试数据 10
1.5 性能分析调优模型 11
1.6 性能分析调优思想 12
1.6.1 分层分析 12
1.6.2 科学论证 13
1.6.3 问题追溯与归纳总结 14
1.7 性能调优技术 14
1.7.1 缓存调优 14
1.7.2 同步转异步推送 17
1.7.3 削峰填谷 17
1.7.4 拆分 19
1.7.5 任务分解与并行计算 19
1.7.6 索引与分库分表 20
1.7.7 层层过滤 22
第2章 服务器的性能监控与分析 23
2.1 Linux服务器的性能监控与分析 23
2.1.1 通过vmstat深挖服务器的性能问题 23
2.1.2 如何通过mpstat分析服务器的性能指标 26
2.1.3 如何通过pidstat发现性能问题 28
2.1.4 从lsof中能看到什么 34
2.1.5 如何通过free看懂内存的真实使用 42
2.1.6 如何通过top发现问题 42
2.1.7 网络流量如何监控 45
2.1.8 nmon对Linux服务器的整体性能监控 51
2.2 Windows服务器的性能监控与分析 54
2.2.1 Windows性能监视器 54
2.2.2 Windows性能监视器下的性能分析 64
第3章 Web中间件的性能分析与调优 66
3.1 Nginx的性能分析与调优 66
3.1.1 Nginx负载均衡策略的介绍与调优 66
3.1.2 Nginx进程数的配置调优 68
3.1.3 Nginx事件处理模型的分析与调优 69
3.1.4 Nginx客户端连接数的调优 71
3.1.5 Nginx中文件传输的性能优化 71
3.1.6 Nginx中FastCGI配置的分析与调优 73
3.1.7 Nginx的性能监控 75
3.2 Apache的性能分析与调优 76
3.2.1 Apache的工作模式选择和进程数调优 76
3.2.2 Apache的mod选择与调优 80
3.2.3 Apache的KeepAlive调优 82
3.2.4 Apache的ab压力测试工具 83
3.2.5 Apache的性能监控 84
第4章 应用中间件的性能分析与调优 87
4.1 Tomcat的性能分析与调优 87
4.1.1 Tomcat的组件以及工作原理 87
4.1.2 Tomcat容器Connector性能参数调优 92
4.1.3 Tomcat容器的I/O分析与调优 92
4.1.4 SpringBoot中的Tomcat调优 95
4.2 WildFly的性能分析与调优 97
4.2.1 WildFly Standalone模式介绍 97
4.2.2 WildFly Standalone模式管理控制台性能参数调优 99
4.2.3 WildFly Standalone模式性能监控 108
第5章 Java应用程序的性能分析与调优 117
5.1 JVM基础知识 117
5.1.1 JVM简介 117
5.1.2 类加载器 118
5.1.3 Java虚拟机栈和原生方法栈 120
5.1.4 方法区与元数据区 121
5.1.5 堆区 121
5.1.6 程序计数器 122
5.1.7 垃圾回收 123
5.1.8 并行与并发 128
5.1.9 垃圾回收器 128
5.2 JVM如何监控 129
5.2.1 jconsole 129
5.2.2 jvisualvm 135
5.2.3 jmap 145
5.2.4 jstat 146
5.3 JVM性能分析与诊断 147
5.3.1 如何读懂GC日志 147
5.3.2 jstack 152
5.3.3 MemoryAnalyzer 157
5.4 JVM性能调优技巧 165
5.4.1 如何减少GC 165
5.4.2 另类Java内存泄漏 166
第6章 MySQL数据库的性能分析 168
6.1 MySQL数据库的性能监控 168
6.1.1 如何查看MySQL数据库的连接数 168
6.1.2 如何查看MySQL数据库当前运行的事务与锁 169
6.1.3 MySQL中数据库表的监控 171
6.1.4 性能测试时MySQL中其他常用监控 174
6.2 MySQL数据库的性能定位 176
6.2.1 慢SQL 177
6.2.2 执行计划 178
6.2.3 MySQL数据库性能定位步骤 180
6.3 MySQL数据库查询的性能调优 181
6.3.1 合理创建索引 181
6.3.2 查询优化 182
第7章 性能测试、分析与调优案例实践 186
7.1 JMeter对HTTP服务的性能压测分析与调优 186
7.2 LoadRunner对HTTP服务的性能压测分析与调优 196
7.3 JMeter对RPC服务的性能压测分析与调优 211
7.3.1 JMeter如何通过自定义Sample来对RPC服务进行压测 211
7.3.2 JMeter对GRPC服务的性能压测分析与调优 220
7.4 JMeter对MySQL性能压测分析与调优 227
7.4.1 如何利用JMeter为MySQL数据库构造测试数据 227
7.4.2 JMeter对MySQL数据库的性能压测分析与调优 233
7.5 常见性能问题分析总结 237
第8章 安卓APP的性能分析 243
8.1 adb 243
8.2 DDMS 245
8.3 Android Studio Profiler 254
8.4 systrace 261
第9章 前端性能分析 263
9.1 谷歌浏览器开发工具Performance介绍 263
9.2 使用Performance来查看和定位页面性能 266
9.3 前端性能调优建议 272