性能调优(一)----Amdahl定律及木桶原理

简介: 什么是Amdahl定律?          首先的一个问题就是,这个怎么读啊???对于我这蹩脚的英语来说真是一脸懵逼。
什么是Amdahl定律?

    
    首先的一个问题就是,这个怎么读啊???对于我这蹩脚的英语来说真是一脸懵逼。赶紧百度下:阿姆达尔定律,是由Gene Amdal 在1967年提出。阿姆达尔定律定义了穿行系统并行化后加速比的计算公式和理论上限。

加速比 = 优化前的系统耗时/优化后的系统耗时

    加速比越高说明你的优化越明显。在这个地方还有另外一个公式:

SpeedUp1F+1FN

SpeedUp:加速比
F:系统内必须串行化的程序比重
N:CPU处理器数量

    F的意思我解释下:比如说一个功能总共有6个步骤:
这里写图片描述
    其中,白色的为必须串行的,绿色的为可以优化并行化的,那么其串行化比重:F=4/6=0.67

Amdahl定律的应用

    
    举个例子吧,跟上边一样,每个步骤耗时100ms,其中只有步骤二和步骤四可以进行优化。
这里写图片描述
    假设现在有两个处理器可以同时工作。那么优化后步骤二和步骤四的时间则变为50ms,整体的时间则由原来的600ms,降低到500ms
这里写图片描述

    这种况下的加速比:600/500=1.2
    但是其实这种优化也是有极限的,因为只有步骤二和步骤四可以优化,那么这两个步骤优化的极限就是无限接近0,整体的优化后的耗时无限接近400ms,也就是说在这种情况下的加速比的极限是 600/400 = 1.5

    也可以根据上边的公式得出:

SpeedUp1F+1FN

    当N趋于无穷大的时候,加速比=1/F,这就是优化的极限。由此可见,为了提高系统的性能,只提高CPU的数量不一定能起到有效的作用。需要从根本上修改系统的串行行为。提高系统内可优化模块的比重,在此基础上,合理增加处理器的数量,才能以最小的投入,得到最大的加速比。

木桶原理

    
    我觉得这一点也可以用“短板理论”来解释:

这里写图片描述

    一只木桶盛水的多少,并不取决于桶壁上最高的那块木块,而是取决于桶壁上最短的那块。
    决定系统性能的关键因素有那么几点:内存资源、CPU资源、磁盘I/O,那么系统的总体性能是取决于当前最慢的磁盘I/O速度,而不是内存和CPU。这种情况下,只有提高磁盘I/O速度才能对系统的整体性能进行优化。我觉得这一点跟阿姆达尔定律有相同之处。

相关文章
|
开发工具 数据安全/隐私保护 git
Git报错 Incorrect username or password (access token) 的解决方式
Git报错 Incorrect username or password (access token) 的解决方式
3130 0
Git报错 Incorrect username or password (access token) 的解决方式
|
机器学习/深度学习 算法
五、分类模型
五、分类模型
229 0
|
数据可视化 Linux 网络安全
【Linux】虚拟机安装Linux、客户端工具,MobaXterm的使用,Linux常用命令
【Linux】虚拟机安装Linux、客户端工具,MobaXterm的使用,Linux常用命令
602 0
html文件里面怎么使用elementui的Message以及MessageBox
html文件里面怎么使用elementui的Message以及MessageBox
737 0
html文件里面怎么使用elementui的Message以及MessageBox
|
机器学习/深度学习 人工智能 TensorFlow
YOLOv5-Lite 详解教程 | 嚼碎所有原理、训练自己数据集、TensorRT部署落地应有尽有(三)
YOLOv5-Lite 详解教程 | 嚼碎所有原理、训练自己数据集、TensorRT部署落地应有尽有(三)
931 0
|
移动开发 JavaScript Oracle
基于Java和Bytemd用120行代码实现一个桌面版Markdown编辑器
想到之前业余的时候做过一些Swing或者JavaFx的Demo,记得JavaFx中有一个组件WebView已经支持Html5、CSS3和ES5,这个组件作为一个嵌入式浏览器,可以轻松地渲染一个URL里面的文本内容或者直接渲染一个原始的Html字符串。另外,由于原生的JavaFx的视觉效果比较丑,可以考虑引入Swing配合IntelliJ IDEA的主题提供更好的视觉效果。本文的代码基于JDK11开发。
450 0
基于Java和Bytemd用120行代码实现一个桌面版Markdown编辑器
|
机器学习/深度学习 人工智能 编解码
遥感影像智能解译产品
AI+影像在遥感行业市场中呈现暴风式增长的势态。本次演讲将为大家介绍阿里达摩院AI遥感智能检异的产品,并分别从产品功能,产品形态以及应用案例等方面提供简单背景介绍。阿里达摩院希望通过遥感影像智能检异的能力,与各个合作伙伴及各个行业一起共建AI+遥感的生态能力。
7262 0
遥感影像智能解译产品
|
2天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。