性能工程高手课
庄振运
Facebook 性能优化和容量管理高级专家
24631 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
性能工程高手课
15
15
1.0x
00:00/00:00
登录|注册

04 | 性能工程三定律:IT业和性能优化工作的“法律法规”

帮助验证测试结果的正确性
帮助设计性能测试的环境
稳定系统中的客户人数
效果预估和整个系统的性能预测
优先加速占用时间最多的模块
并行处理的总体性能提升度
程序代码的优化
客户流量的时间分布
程序代码的修正和纠错
程序代码的维护
程序代码开发时间的分配
应用程序的使用
利特尔法则
阿姆达尔定律
帕累托法则
必备的基础知识
性能工程的重要性
性能工程三定律

该思维导图由 AI 生成,仅供参考

你好,我是庄振运。
在开篇的几讲里,我谈了性能工程的重要性以及所需要的知识面,接下来我们就正式地进入相关的学习。
不过不要着急,第一个模块我们并不会直接进入性能问题的现场,一上来就去解决问题,而是要先耐下心来,学习一些必备的基础知识。为什么呢?因为学习任何事情,打好坚实的基础是至关重要的。
古人云:“合抱之木,生于毫末;九层之台,起于累土。”
所以接下来的几讲,我们需要先学习一些基础知识,包括和性能工程相关的几个重要定律法则和数理基础。这一讲我先和你探讨三个定律法则:帕累托法则、阿姆达尔定律和利特尔法则。

帕累托法则

我想你可能知道帕累托法则,它也被称为 80/20 法则、关键少数法则,或者八二法则。
这个法则是基于我们生活中的认识产生的,人们在生活中发现很多变量的分布是不均匀的——在很多场景下,大约 20% 的因素操控着 80% 的局面。也就是说,所有的变量中,比较重要的只有 20%,是所谓的“关键少数”。剩下的多数,却没有那么重要。
举例来讲,在企业销售中,根据帕累托法则,大约“80%的销售额来自 20%的客户”。认识到这一点对企业管理至关重要,比如需要重视大客户的关系。
虽然帕累托法则在生活中很多方面都适用,但我们今天的重点是来看看帕累托法则是怎么应用到我们 IT 界的,尤其是怎么指导我们的代码开发和性能优化相关的领域的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

性能工程三定律是IT业和性能优化工作的“法律法规”,包括帕累托法则、阿姆达尔定律和利特尔法则。帕累托法则指出在很多场景下,大约20%的因素操控着80%的局面,对于IT界,指导着程序使用、代码开发、维护、修正、客户流量和代码优化等方面的工作。阿姆达尔定律则强调程序的总体性能受限于程序所需的串行时间百分比,对性能优化提出了优先加速占用时间最多的模块和准确的效果预估和整个系统的性能预测。利特尔法则描述了在一个稳定的系统中,长期的平均客户人数等于客户抵达速度乘以客户在系统中平均处理时间。这些定律为性能工程提供了重要的指导,帮助优化工程师更有效地进行性能优化工作。 利特尔法则的应用可以帮助设计性能测试的环境和验证测试结果的正确性。通过调整客户的处理时间或扩大系统容量来应对客户访问速度的变化,优化系统性能。熟悉并熟练应用这些法则对工作有很大帮助,正如孟子所说:“不以规矩,不能成方圆。”熟练应用这几个“规律法则”,对工作是会有很大的帮助的。 帕累托法则在很多场景下都适用,例如资源分配、问题解决、客户关系管理等。熟练应用这些法则可以帮助把握问题和找寻解决思路。 总之,性能工程三定律为性能优化工作提供了重要的指导,熟练应用这些法则对工作有很大的帮助,能够帮助优化工程师更有效地进行性能优化工作。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能工程高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(12)

  • 最新
  • 精选
  • :)
    这三个法则的专业名称有点太难记住,,,利用老师给的例子,给三个法则定义别名,或许更容易记住 1. 20-80法则(帕累托法则)。告诉我们抓住重点,这就引申出另外一个问题,那20%如何定位? 2. 凉衣服法则(阿姆达尔定律)。告诉我们抓住总体的串行流程。 3. 客户进出法则(利特尔法则)。告诉我们总体容量=速度×时间。

    作者回复: 嗯,还真是可以考虑,毕竟外国人的名字太难记。

    2019-12-04
    20
  • 胡波 allenhu
    请问老师,系统容量和系统吞吐率的关系是什么?

    作者回复: 系统容量其实含义有点广,指的是一个系统最大处理能力。如果用请求数来衡量,意思是,一个系统(比如程序+服务器)的最大请求处理能力,比如每秒最多处理1000个请求。或者也可以说成是“系统最大吞吐率”。 有时候系统容量也可以用来衡量存储能力。比如一台服务器可以存1TB数据。 总之,“系统容量”往往指的是一个系统的性能瓶颈能力,可以是QPS(Query Per Second,也就是请求数),网络处理能力,存储能力等等。

    2019-12-04
    7
  • 许童童
    老师讲的这几个法则非常好,帕累托法则、阿姆达尔定律和利特尔法则,记住这三个法则,就可以出去吹牛批,吊打小伙伴了。

    作者回复: 🙂,学以致用,很好

    2019-12-05
    2
  • 梅子黄时雨
    嗯嗯,老师的这边专栏,高屋建瓴。我之间虽然知道用户访问量增大,可以通过横向扩容服务器来承受流量,但并没有理论上的认知。这下是学习到了。

    作者回复: 赞👍

    2019-12-04
    1
  • coder
    与阿姆达尔定律对应的,从数据规模的角度解释并行的问题,叫做古斯塔夫森定律,这可是体系结构领域必知的知识🌚🌚🌚
    2020-04-07
    4
  • 三个听过两个,来个小结: 1:二八原则(又叫帕累托法则)——告诉我们,做事情一定要抓住主要矛盾的主要方面,空间局部性原理和时间局部性原理,和这个应是异曲同工 2:阿尔达姆定律——这个感觉老师讲的有些问题,这个定律核心强调加速比的大小有串行化的代码决定,多加机器有时也是不行的。 3:利特尔法则——告诉我们,机器的容量有限,一定时间只能承受一定的速率,如果速率增加,要么处理速度也增加,要么为了容纳多出来的容量就加机器。如果我们能做到外部速率增多,内部也增大不加机器就能扛的住,那就是在给公司省钱。
    2020-03-03
    4
  • Q
    1. 80-20法则可以指导我们,找到问题的关键,并形成“焦点”。 2. 阿尔达姆定律有点像短板理论,类似生活中的差等生成绩拖了全班平均成绩一样,优等生再努力,成绩都会有一个极限,推导到PC性能提升,机械硬盘往往是哪个短板。 3.利特尔法则关注的是一段时间系统能“同时处理”的请求数。
    2019-12-05
    3
  • li3huo
    系统容量=吞吐量*响应时间
    2020-05-20
    1
  • 学习学个屁
    82法则 读写82
    2021-09-05
  • 皮特尔
    帕累托法则最早是通过统计发现的社会财富分配规律:20%的人占有80%的社会财富。然后又扩展到了社会学、管理学等领域。
    2020-05-30
收起评论
显示
设置
留言
12
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部