博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解性能提升By阿姆达尔定律(Amdahl's law)
阅读量:6192 次
发布时间:2019-06-21

本文共 557 字,大约阅读时间需要 1 分钟。

我们在进行系统优化完成后,怎么评估优化的效果呢?最简单的方式是测量系统优化后耗时和优化前耗时的比例,这也叫加速比S(Speed Up)。

在理解性能优化具有重要指导意义。优化前系统总耗时To(old),优化后系统总耗时Tn(new),加速比S=To/Tn。
通过下面这张图理解:(α为待提速部分原来耗时比例)
理解性能提升By阿姆达尔定律(Amdahl's law)

S = To/Tn = 1 / (1-α)+α/k

当待优化部分提速无穷倍(k接近无穷大,不耗时间)时候,S = 1 / (1-α) , 也就是说,比如α=60%,如果系统中60%的部分能提速到不花时间,那么获得最高的加速比仍然只有1/0.4=2.5,系统才能提速2.5倍。也就是Amdahl's law的主要观点:要想显著加速整个系统,必须提升全系统大部分的速度。


我们在刻画并行程序的时候,理想情况是随着cpu核数增加,期望运行时间会线性下降。也就是说,期望线程数加一倍,运行时间就会减一半。

如图:
实际情况:
理解性能提升By阿姆达尔定律(Amdahl's law)

理想情况:

理解性能提升By阿姆达尔定律(Amdahl's law)

关键刻画性能提升的指标是加速比,旧时间/新时间,随着线程增加,时间对应减少,实际情况,随着线程增加,运行时间可能会增加,因为有了线程上下文切换的开销。

参考:

阿姆达尔定律:
加速比:

转载于:https://blog.51cto.com/thinklili/2123626

你可能感兴趣的文章
[mvc] 简单的forms认证
查看>>
nmap 端口扫描工具
查看>>
Maven项目如何将自定义文件添加到META-INF目录下
查看>>
远程桌面,身份验证错误:要求的函数不正确等解决办法
查看>>
[转]携程大数据实践:高并发应用架构及推荐系统案例
查看>>
EntityFramework Core笔记:保存数据(4)
查看>>
基于 HTML5 WebGL 的 3D 棉花加工监控系统
查看>>
Vagrant 基础全面解析
查看>>
Redis从入门到精通:初级篇(转)
查看>>
SpringBoot Mybatis 分页插件PageHelper
查看>>
刨根问底 | Elasticsearch 5.X集群多节点角色配置深入详解【转】
查看>>
python怎么写可读性好的面向过程的长篇代码?
查看>>
怎样轻松将SD卡照片数据恢复
查看>>
Gsoap编译
查看>>
Linux下函数调用堆栈帧的详细解释【转】
查看>>
洛谷P2765 魔术球问题(贪心 最大流)
查看>>
SQL Server2016 配置管理器
查看>>
并发下线程池的最佳数量计算
查看>>
@EnableAsync和@Async开始异步任务支持
查看>>
匿名内部类和内部类中的this
查看>>