- 课程目录
- 课程介绍
-
在线阅读:开篇词 | 与我一起修炼,成为一名软件性能大师吧!
虽然不同领域的业务知识差异比较大,但其背后支撑性能设计与优化的原理与方法论,却是统一的。
-
01 | 性能建模设计:如何满足软件设计中的性能需求?
在软件设计阶段,你首先应该有基于性能进行建模与分析的意识,然后才是去学习如何正确使用这些性能建模的方法。
-
02 | 并行设计(上):如何利用并行设计挖掘性能极限?
我们不应将并行执行单元限定在线程粒度上,而是应根据处理的特定领域问题,选择合适的并行执行单元粒度和并发调度框架。
-
03 | 并行设计(下):如何高效解决同步互斥问题?
同步互斥是影响并发系统性能的关键因素之一,一旦处理不当,甚至可能会引起死锁或者系统崩溃的危险。
-
04 | 缓存设计:做好缓存设计的关键是什么?
当基于性能进行软件设计时,如果没有做好多层级的缓存设计,不仅可能浪费钱,而且获取的性能收益可能也不够理想。
-
05 | IO设计:如何设计IO交互来提升系统性能?
你应该对与IO相关的问题时刻保持警觉,不要让它们拖垮了软件的业务性能。
-
06 | 通信设计:请不要让消息通信拖垮了系统的整体性能
在软件系统中,基于消息队列的通信设计类似于接力赛中的交棒环节,一旦某个选手在交接棒期间失误,那么整个团队的成绩就会被拖垮
-
07 | 数据库选型:如何基于性能需求选择合适的数据库?
在对数据库选型时,我们其实很难完全剥离功能来谈性能,而是需要基于功能与性能一起综合决定。
-
08 | 可监控设计:如何利用eBPF来指导可监控设计?
你需要明确理解和掌握eBPF这项技术是什么,以及它为高性能软件监控设计的解决思路所带来的变化是什么。
-
09 | 性能模式(上):如何有效提升性能指标?
你需要对软件执行模型有深入的理解,以及借助数据度量来辅助分析
-
10 | 性能模式(下):如何解决核心的性能问题?
性能模式是软件优化中非常重要的手段之一,而很多性能优化工程师目光只停留在编译层面的优化性能,忽略了最直接且高效的性能模式
-
11 | 如何针对特定业务场景设计数据结构和高性能算法?
现成的数据结构和算法更像是一个工具库,相较于熟悉所有的数据结构与算法而言,我认为更重要的是如何理解业务。
-
12 | 我们要先实现业务功能,还是先优化代码?
在编码阶段考虑高性能的实现方法,与完成业务功能后再进行代码调优之间并不矛盾,这二者应该要被同等地重视起来。
-
13 | 编译期优化:只有修改业务代码才能提升系统性能?
你需要关注开发的业务软件的实现特点,以及它关注的性能指标是什么,然后再利用编译期优化手段,来调整优化软件的性能。
-
14 | 内存使用篇:如何高效使用内存来优化软件性能?
在软件编码的过程中,不同实现方式对内存的影响,主要体现在三个场景:内存的空间与布局、内存的申请与释放、内存的读取与修改。
-
15 | 并发实现:掌握不同并发框架的选择和使用秘诀
并发框架只是在一定程度上减少了开发高性能软件的复杂度,最终开发的软件性能还取决于是否找到了更适合业务特性的高性能实现方案
-
16 | 技术探索:你真的把CPU的潜能都挖掘出来了吗?
SIMD是一种比较贴近底层的优化技术,只在特定场景下才有效果,因此在做性能优化时,你需要先考虑其他高性能编码实现技术。
-
17 | Benchmark测试(上):如何做好微基准测试?
你只能优化你能测量到的性能问题,你也只能看护你能测量到的软件性能。而微基准测试正是你支撑与看护高性能编码实现的重要手段。
-
18 | Benchmark测试(下):如何做好宏基准测试?
宏基准测试的目标是获取软件系统级的性能基线水平,以此支撑系统基于性能去弹性扩展、部署运维,或指导系统设计层面的性能优化。
-
19 | 性能测试工具:如何选择最合适的性能测试工具?
对软件系统的性能测试并不是一次性的,为了保持其在演进过程中的性能可以长期处于有效状态,你就需要选择合适的性能测试工具。
-
20 | 性能看护: 如何更好地守护产品性能?
测试驱动的核心理念,就是在做软件设计优化、编码优化、性能调优的时候,都基于性能测试来驱动优化工作,而不是想当然。
-
21 | 性能CI:性能测试也可以集成到Pipeline中吗?
现在很多研发团队所做的性能测试,与代码提交都是脱节的,因此这样就不能在第一时间发现代码提交引入的性能劣化问题。
-
22 | 性能调优方法论:如何科学高效地定位性能问题?
以最小化资源占用为导向的性能优化,它的核心目标是降低成本。但对于产品而言,最关键的其实是客户视角所关注的业务性能。
-
23 | 监控分析:你的性能调优工具足够有效吗?
我们需要建立一套系统的监控分析工具体系,来帮助获取多个层级的监控数据,以及通过体系化的工具选择和使用来有效提升分析效率。
-
24 | 动态监控:你的产品系统中有动态监控的能力吗?
你每增加一种观测手段,都会给软件执行带来额外的性能开销。
-
25 | 性能调优什么时候应该停止?
性能优化点应该包含了软件设计、软件编码等多方位的性能优化点。
-
26 | 一个嵌入式实时系统都要从哪些方面做好性能优化?
做好性能优化并不是一锤子的买卖,而是一个系统化的软件工程活动
-
27 | 解决一个互斥问题,系统并发用户数提升了10倍!
如果互斥锁的选择和使用不当,就很可能成为系统的性能瓶颈之一。
-
28 | Web服务业务代码一行不动,性能提升20%,怎么做到的?
一个点上的性能优化会改善产品中多个方面的性能特征。
-
结束语 | 千里之行,始于足下,你已踏上修炼之道!
凡事都坚持复杂化的人,恰恰是对那些情况不怎么熟悉的人。
-
结课测试 | 《性能优化高手课》100分试卷等你来挑战!
一套习题,测试你对性能优化知识的掌握程度。
课程介绍
你将获得 完整高效的性能调优路径 清晰的性能优化瓶颈分析思路 15+典型性能实现场景解析 一线大厂的性能优化实践经验 讲师介绍 课程介绍 很容易造成代码可读性差,而且只是做到局部性的优化;...你将获得
- 完整高效的性能调优路径
- 清晰的性能优化瓶颈分析思路
- 15+典型性能实现场景解析
- 一线大厂的性能优化实践经验
讲师介绍
课程介绍
- 很容易造成代码可读性差,而且只是做到局部性的优化;
- 这种工作方式通常是在软件工程的后期才启动,发现问题会比较滞后;
- 一次性优化合入的代码量很大,导致软件版本发生质量问题的概率会比较大;
- 由于没有设计与数学理论的支撑,不知道性能优化目标在哪个范围内才是合理的;
- ……
那么要想规避这些问题,就必须从整个软件生命周期的视角去关注与审视软件性能,通过主动式地设计与实现来主导软件性能,这样才能保证软件性能长期保持竞争力。而这,正是这门课的设计原则。
在这门课中,尉刚强老师会分别针对基于性能的建模与设计、高性能的编码实现、性能看护和性能持续调优四个部分,讲解软件从设计到交付的一整套性能优化的实用方案,让你能够明确地理解和掌握系统级的性能优化的理念和方法,最后还会通过一个案例模块,来帮助你提升具体实施性能优化方法的能力。
这样,当你站在系统端到端的角度,分析从软件设计到工程发布上线这一整个过程中,软件性能一直处于可控状态的方法,思考这样做的出发点及背后支撑的理论是什么,就能够深入挖掘出全局的性能设计与优化的方法论,从而有效提升软件性能工程的管理能力。

课程模块设计
课程主体划分为以下5大模块。
性能设计篇:该模块会介绍几种在性能优化设计中非常关键,而且经常用到的设计方法,包括并发架构设计、内存模型设计、IO通信设计等。另外,还会从性能扩展和调优的角度,讲解在软件设计阶段需要考虑的可监控设计、软硬件选型设计等,帮助你在实际的建模和设计过程中,支撑产品更好地实现性能需求。
性能实现篇:该模块会从编码实现的阶段入手,结合场景案例,带你了解和学习高性能编码的实现模式。同时,还会带你深入理解各种数据结构与算法,并从使用最为广泛的Java语言着手,给你讲解在不同的场景下,使用不同的算法所带来的性能差异,这样你在面临不同的业务问题时,就能精准地选择合适的算法,来提升性能。
性能看护篇:该模块会从性能测试前置这一核心的性能看护出发点着手,带你深入产品的组件级、系统级的多层级性能测试,让你在理解性能看护核心理念的基础上,清楚地知道该如何实现性能测试用例自动化,并能够集成到CI中,这样当你在提交代码时,就可以在第一时间发现性能腐化问题。
性能调优篇:该模块会给你分享一套性能调优的通用方法论,包括性能问题分析与定位的方法技巧,帮助你在实际的业务场景中,快速找到受限于性能瓶颈的资源,持续地监控分析目标。
案例篇:该模块会为你讲解多个在真实项目中实施性能优化的操作过程,帮助你提升落地性能优化方法的能力和技巧,以此帮助你明确做性能优化时需要考虑的两个问题:如何选择合适的性能优化方法?怎样才能更好地实施性能优化方法?
课程目录


