性能的重要性越来越高,但是要想真正实现高性能,必须具有架构思维,从多个层面行设计和优化。 在AI时代,具有性能 架构这种综合性能力的技术人将成为企业中的高薪者。 本书以方法论为基础,站在架构层面,以网络、通信、客户端、单服务器、数据库为优化方向,深解读软件全栈优化解决方案,内含4大主流产品优化案例。可以帮助你成为企业中的高端人才。
售 价:¥
纸质售价:¥81.70购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
前折页
书名页
前言
认知篇
第1章 软件架构的时空观
1.1 软件架构的时空定义
1.2 软件架构的分类
1.2.1 体系结构上的分类
1.2.2 流程决策上的架构分类
1.3 软件架构设计的原则与模式
1.3.1 软件架构设计的原则
1.3.2 软件架构设计的模式
1.4 软件架构的常用技术栈
1.5 本章小结
第2章 软件性能的时空观
2.1 软件性能的宏观多维模型
2.1.1 系统边界
2.1.2 内部结构
2.1.3 外部效应
2.1.4 连接输入
2.1.5 本节小结
2.2 软件性能的一般含义
2.3 软件性能的时空视角
2.3.1 系统性能的时间指标
2.3.2 软件性能的空间指标
2.3.3 系统性能指标的时空关联
2.3.4 常见的软件性能指标
2.4 软件性能的描述方式与工具
2.4.1 软件性能的时间描述——时序图
2.4.2 软件性能的空间描述——组件描述直方图
2.5 软件的性能测试与监控
2.5.1 性能测试
2.5.2 监控性能拐点
2.5.3 容量规划
2.6 本章小结
第3章 软件性能优化体系
3.1 软件性能优化策略
3.1.1 控制资源需求相关因素
3.1.2 管理资源相关因素
3.2 基于“点”的性能优化
3.3 基于“线”的性能优化
3.4 基于“面”的性能优化
3.5 基于“体”的性能优化
3.5.1 第一阶段:常规优化
3.5.2 第二阶段:使用缓存与读写分离
3.5.3 第三阶段:异步化与事务
3.6 性能优化的PDCA
3.7 性能与其他非功能要素
3.8 本章小结
第4章 性能测试与评估
4.1 软件性能的度量
4.1.1 性能测试的目的及意义
4.1.2 性能测试的度量指标
4.1.3 常见基础设施性能指标
4.2 性能测试常用工具
4.2.1 性能测试场景
4.2.2 性能测试工具简介
4.2.3 性能测试工具选择
4.3 性能测试的方法、误区和流程
4.3.1 性能测试的方法
4.3.2 性能测试的误区
4.3.3 性能测试的流程
4.4 性能测试的结果分析与评估
4.4.1 施压机器的指标观测
4.4.2 软件的指标分析
4.4.3 软件的事后评估
4.5 本章小结
实践篇
第5章 网络性能
5.1 互联网的性能问题
5.1.1 规模问题
5.1.2 距离瓶颈
5.2 内容分发的方式与性能
5.2.1 集中托管
5.2.2 数据中心
5.2.3 分布式CDN
5.2.4 P2P网络
5.3 CDN的选择
5.4 应用层的网络性能优化
5.4.1 减少传输层开销
5.4.2 寻找更好的路由
5.4.3 内容预取
5.4.4 使用压缩和增量编码
5.4.5 边缘组装
5.4.6 边缘计算
5.5 计算密集型应用的性能提升——高性能网络
5.5.1 Infiniband网络与RDMA
5.5.2 RDMA的关键特性
5.5.3 RDMA的上层接口
5.5.4 RDMA的底层实现
5.5.5 RDMA的性能优势与主要应用场景
5.6 网络性能观测工具
5.6.1 网络可观测性建设
5.6.2 网络分析工具
5.7 本章小结
第6章 通信性能
6.1 面向互联网的软件
6.1.1 网络应用并非只是计算
6.1.2 计算中的通信视角
6.1.3 网络应用的通信视角
6.2 通信协议的分层设计与优化
6.2.1 通信协议的分层设计
6.2.2 通信协议的优化
6.3 软件通信中的数据组织
6.3.1 XML、JSON和Protocol Buffer
6.3.2 性能视角的数据包大小
6.4 软件通信中的复用机制
6.5 软件通信的纠错处理
6.5.1 前向纠错与重传纠错
6.5.2 重传机制
6.6 软件通信中的流量控制
6.6.1 反向压力
6.6.2 减负载
6.6.3 熔断
6.7 通信协议的优化示例:基于HTTP的性能优化
6.7.1 链路复用
6.7.2 数据压缩
6.7.3 SSL加速
6.8 本章小结
第7章 客户端性能/前端性能优化
7.1 性能优化指标
7.1.1 以用户为中心的性能指标
7.1.2 三大核心指标
7.1.3 前端性能测量工具汇总
7.2 前端系统优化
7.2.1 HTTP中的性能优化
7.2.2 代码压缩
7.2.3 JavaScript中的性能优化
7.2.4 Webpack优化
7.2.5 Vue项目性能优化
7.3 客户端系统优化
7.3.1 Flutter项目优化
7.3.2 PC端QT项目优化
7.3.3 客户端性能监控的思考
7.4 本章小结
第8章 单服务实体的性能优化
8.1 单服务实体性能问题定位的简单策略
8.1.1 度量指标
8.1.2 资源列表
8.1.3 功能模块图
8.1.4 度量方法
8.1.5 软件资源
8.1.6 性能定位的简单策略
8.2 操作系统的配置优化
8.3 代码性能的基础保障——静态分析
8.4 API的性能约定
8.4.1 面向API的性能分类
8.4.2 API的性能约定
8.5 资源池的应用
8.5.1 连接池
8.5.2 线程池
8.5.3 内存池
8.6 本章小结
第9章 数据库性能
9.1 从数据库技术发展看性能问题
9.1.1 数据库对系统性能的影响
9.1.2 数据库技术的整体发展
9.1.3 关系数据库的诸多挑战
9.1.4 NoSQL运动的百花齐放
9.1.5 分布式演进的步步为营
9.1.6 分布式数据库的风起云涌
9.2 面向分布式应用的数据库性能分析
9.2.1 制定数据库性能规划目标
9.2.2 通过压测了解数据库性能
9.2.3 分析应用数据库性能瓶颈
9.2.4 数据库性能优化一般方法
9.3 MySQL的常见优化方法
9.3.1 操作系统参数优化
9.3.2 数据库配置优化
9.3.3 数据库设计优化
9.3.4 SQL查询优化
9.3.5 SQL写入优化
9.3.6 应用连接池优化
9.4 本章小结
第10章 缓存的应用
10.1 无处不在的缓存
10.2 客户端缓存
10.2.1 页面缓存
10.2.2 浏览器缓存
10.2.3 App上的缓存
10.3 网络端缓存
10.3.1 Web代理缓存
10.3.2 边缘缓存
10.4 服务端缓存
10.4.1 平台级缓存
10.4.2 分布式缓存的应用
10.5 数据库缓存
10.5.1 数据库缓存:MySQL的查询缓存
10.5.2 检验Query Cache的合理性
10.5.3 数据库缓存:InnoDB的缓存性能
10.6 营销场景案例:优惠券(红包)发放与核销
10.7 电商案例:应用多级缓存模式支撑海量读服务
10.7.1 多级缓存介绍
10.7.2 如何缓存数据
10.8 本章小结
第11章 消息队列
11.1 消息队列概述
11.2 消息队列使用场景
11.2.1 削峰填谷
11.2.2 应用解耦
11.2.3 异步处理
11.2.4 分布式事务一致性
11.2.5 大数据分析
11.3 消息中间件的选型
11.3.1 RocketMQ
11.3.2 RabbitMQ
11.3.3 ActiveMQ
11.3.4 Kafka
11.4 本章小结
案例篇
第12章 小度音箱的性能优化
12.1 智能音箱的组成和系统架构
12.1.1 对话式AI操作系统——DuerOS
12.1.2 智能音箱的典型工作流程
12.2 小度音箱的性能分析
12.2.1 核心的性能指标
12.2.2 核心指标的度量
12.3 小度音箱系统的网络拓扑优化
12.4 小度音箱系统的应用协议优化
12.5 小度音箱系统的业务逻辑优化
12.5.1 智能音箱业务中的延时分布
12.5.2 预测预取
12.5.3 连接池的应用
12.6 小度音箱系统的缓存应用
12.7 本章小结
第13章 网上商城的性能优化
13.1 网上商城的架构与业务流程
13.1.1 核心模块
13.1.2 核心业务
13.2 商城系统的性能指标
13.3 网上商城核心模块的性能优化
13.3.1 商品管理
13.3.2 用户管理
13.3.3 购物车管理
13.3.4 订单管理
13.3.5 秒杀系统设计
13.4 本章小结
第14章 典型并发场景——营销红包的性能优化
14.1 类支付宝红包系统的业务流和挑战
14.1.1 类支付宝红包业务动作和潜在技术挑战分析
14.1.2 讨论方案:大商户红包热点问题
14.1.3 多级缓存策略
14.1.4 讨论方案:单笔支付咨询多红包问题
14.2 类微信红包系统的业务流和挑战
14.2.1 类微信红包业务动作分析
14.2.2 异步化
14.2.3 SET化:分拆资源
14.2.4 无并发写的实践
14.3 预加载和考虑备案
14.4 性能优化策略与案例的关系
14.5 本章小结
第15章 支付系统/核心交易系统的性能优化
15.1 支付系统/核心交易系统的架构特点
15.1.1 支付系统的作用
15.1.2 支付系统的架构
15.2 交易系统的链路优化
15.3 对账系统的设计
15.3.1 对账系统概述
15.3.2 对账需求分析
15.3.3 对账流程和规则设计
15.3.4 对账系统实现说明
15.4 本章小结
扩展篇
第16章 全链路性能压测
16.1 全链路性能压测的背景与价值
16.2 端到端全链路监控分析
16.2.1 APM技术
16.2.2 Apache Skywalking
16.3 线上流量复制与染色
16.3.1 流量复制
16.3.2 流量复制工具
16.3.3 流量染色
16.4 全链路压测的数据安全与隔离
16.4.1 数据隔离
16.4.2 影子库与影子表
16.4.3 ShardingSphere的影子库功能
16.5 全链路压测下相关系统的改造
16.5.1 业务系统的改造
16.5.2 消息队列的改造
16.5.3 外调服务的挡板功能
16.5.4 缓存中间件的改造
16.6 全链路压测的行业案例
16.6.1 滴滴出行的全链路压测
16.6.2 美团全链路压测自动化实践
16.6.3 饿了么全链路压测平台
16.7 本章小结
第17章 云原生技术为性能带来的机遇与变革
17.1 云原生弹性的实现原理
17.1.1 Kubernetes的资源类型
17.1.2 Kubernetes的资源管理和调度
17.1.3 Kubernetes的资源动态调整能力
17.1.4 Kubernetes的资源碎片问题
17.2 云原生的可观测性
17.2.1 可观测性与传统监控的区别
17.2.2 可观测性的维度
17.3 云原生要解决的性能问题、带来的挑战及应对
17.3.1 云原生解决了哪些性能问题
17.3.2 云原生带来了哪些新的挑战
17.3.3 如何应对云原生带来的挑战
17.4 本章小结
后折页
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜