阿姆达尔Law对系统性能的提升的定义
阿姆达尔定律 = Amdahl's Law,本篇重点是介绍该定律。
背景
系统架构中对系统性能设计的解决方案之一:“阿姆达尔方案”。书中还有个完全看不懂的公式,理解起来脑仁痛(不懂...)但发现很有价值,便系统的学习一下。
例题试先做一下,带着疑问点再看定律。
例题:假设某一功能的处理时间为整体系统运行时间的60%,若使该功能的处理速度提高至原来的5倍,则根据阿姆达尔定律,整个系统的处理速度可提高至原来的多少倍?
定理公式
优化前系统总耗时To(old),优化后系统总耗时Tn(new),加速比S=To/Tn。
Speedup = timeOld / timeNew
详细公式:
S = 1 / ((1-C) + C/S)
S(speedup),加速比。
C,原系统中能够改进的部分占总部分的比例,也可以说能够改进部分运行时间占总系统运行时间的比例,比如:75%。
S,改进后系统的提升比例,比如:5倍。
举例分解
上面的例子细化一下:程序A中子程序B的运行时间占A的60%,子程序B优化提升了5倍速度,那么程序A将多少?
程序A初始假设速度可为1,如下:
1/((1-0.6)+0.6/5) = 1/(0.4+0.12) = 1/0.52 = 1.923
Amdahl
阿姆达尔 Gene Amdahl,出生于1922年11月16日,出生在美国南达科他州的弗德鲁,是著名的企业家,创办多家公司。Amdahl曾经是研究并行处理系统的,1967年Amdahl推导出了固定负载情况下描述并行处理效果的加速公式。
P是并行率。若P=1,获取到无穷加速比;
定律的理解
本篇要说的是它的一种变形运用。
定义:系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。
阿姆达尔定律实际上定义了采取增强(加速)某部分功能处理的措施后可获得的性能改进或执行时间的加速比。简单来说:要想显著加速整个系统,必须提升全系统大部分的速度。可以再简单些:优化影响最大的部分。
建议采用这样的思路来优化系统性能,也可以直接采用公式来量化改进效果。这个公式在操作上十分的简单很实用,可以运用在整个系统分析上,也可以在模块分析上,甚至是一个方法上。
友链支持
参考博客:codingforspeed.com、ifeve.com
作者:Owen Jia <专注技术架构>
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
React Hooks - 如何安全地使用state
Hi,丹尼尔,今天我们来聊一聊 "如何安全地使用 state" 怎么样? 丹尼尔:安全?难道使用 React Hooks 的 state 还会带来危险?X﹏X 紧张~ 放松放松,关于安全,等会我给个例子就会很好理解了。没有例子的辅助,好难一下子说明白,也可能是我的表达能力 So So 吧! 丹尼尔:好吧。在场的各位同学,有不清楚 React Hooks 是什么的吗? 也许有一些同学还不太了解,我就简单地介绍下(突然有种凑字数的嫌疑 ヘ(・_|): React Hooks 是个好东西,它让你可以用纯函数来实现有状态的组件,从此你不用再纠结组件到底是有状态还是无状态,从而在纯函数和类两种实现间徘徊(当然好处多多,绝不止这个,后面我会专门写一篇介绍 Why React Hooks 的文章滴?)。 一旦你踏上 React Hooks 的征途,就会碰到各种各样奇怪的问题。 这很正常,一个新事物的诞生,总是伴随着各种问题,然后在打怪中不断升级成长,最终成为。。。 丹尼尔:喂喂,别扯远了 ?如果你有看过关于 React Hooks 的官方文档,看过里面的一些例子,你可能会觉得,挺简单的,不过是改...
- 下一篇
被DDOS/CC攻击后总结如何选择最低成本的防护方案
一、行业现象 1.1 为什么要攻击? 常见的,一个是同行恶意竞争,一个是敲诈勒索。 无论是传统行业的线下门店,还是互联网行业的门户网站、APP产品,都存在着竞争关系,争相获得更多客源,究其目的,无非是为了赚钱。 1.2 被攻击有什么症状? 传统行业线下门店来讲,你开了一家饭店,正正经经做生意,生意也还不错。这两天经常有一大堆人进饭店,但是不点菜就占着位置不消费,或者动不动有乞丐在门口守着,有人在饭菜里面吃到虫子等等,这就是传统行业的恶意竞争。 互联网行业同理,你的门户网站或者APP产品一直正常运行,也没有做推广导流大量用户,但是系统突然无法访问,或者卡的要死,技术检查说是服务器流量暴增,导致服务器崩溃,阿里云ECS被拉入黑洞,无法访问。 用户无法正常使用你的产品,自然会觉得你的系统不稳定,导致用户流失。 1.3 恶意竞争的对手一般是不会攻击,那他是怎么做到的? “发单者”,发起恶意竞争的对手,或者是敲诈勒索的主,即“老板”; “攻击者”,收到发单者的订单,通过专业技术手段对目标进行攻击操作,即“项目经理”; “肉鸡供应商”,即给攻击者提供资源的供应商,资源即“捣乱者”; 另,本图只是简...
相关文章
文章评论
共有0条评论来说两句吧...