当前位置: 首页 > news >正文

阿姆达尔定律(Amdahl‘s Law)

阿姆达尔定律(Amdahl's Law)

1、核心定义

用来定量计算:对系统中某一部分做并行 / 加速优化后,整个系统理论上能达到的最大加速比上限。 核心结论: 系统里无法并行、必须串行执行的那一小段代码,决定了整个程序的性能天花板

2、公式

符号说明

  • \(S_{max}\):整体理论最大加速倍数;
  • f:可以被并行加速的代码占总执行时间的比例
  • N:投入的并行工作单元(CPU 核心、线程数)。

极端场景推演

哪怕给无限算力,加速比也被串行部分死死锁住。

3、举直观例子

例子 1

一段程序:80% 逻辑可以多线程并行,20% 只能串行执行。 1)只用单线程:总耗时记为 T 2)开到无限多核并行:整个程序最快最多只能提速5 倍,剩下那 20% 串行代码就是瓶颈,堆再多 CPU 核心也没用。

例子 2

如果串行部分占到 50%:无论开多少线程,整体最多提速 2 倍。

4、套到熟悉的 Java 多线程、NIO 场景

  1. 场景:大量 IO 等待(网络读写、数据库等待)可以并行;但主线程初始化、全局锁争抢、单例串行计算、日志同步刷盘这部分是串行。 就算开几十上百条 Netty 工作线程,整体吞吐上限被串行瓶颈卡死;
  2. 锁竞争激烈时:临界区代码串行执行,这部分就是公式里的 (1-f),锁越重,f 越小,多线程收益微乎其微;
  3. NIO 优化:把阻塞等待改成多路复用,本质就是把大量串行阻塞等待变成可并行调度,拉高f。

5、通俗人话总结

  1. 程序里串行跑不掉的代码,是性能的天花板;
  2. 不要盲目堆线程、堆 CPU 核心,优先优化串行瓶颈(锁、同步阻塞、单线程繁重计算)收益最大;
  3. 并行部分占比越高,多核优化收益越明显;串行占比越高,多核基本白费。

6、延伸小补充

阿姆达尔是固定问题规模下的加速比; 配套的古斯塔夫森定律是:业务数据量跟着核心数同步变大时,加速比会更高。日常后端调优优先看阿姆达尔。

http://www.jsqmd.com/news/1407237/

相关文章:

  • STAR 法则实战:行为面试高频题这样答最加分
  • 周报8.15
  • 2026年亚诺欧检测认证核心服务范围相关知识科普详解 - 招财兔数字员工
  • 小红书 算法一面 二
  • Linux常见指令
  • 2026年杭州空调地暖门店推荐及联系方式参考 - 产品推荐官
  • 2026电动二通阀厂家避坑横评参考:亿林自控对比四家真实厂商 - 品牌报告
  • 实现单机部署codis
  • Xshell配置SSH密钥登录Linux服务器:原理、步骤与排错指南
  • rk3568安卓13驱动适配-HDMI分流(GSV2001)
  • 2026厦门本地靠谱GEO优化公司推荐6家盘点:AI搜索服务商实力评估、选型标准与签约避坑FAQ详解 - 产业观察报
  • 手机智谱清言导出表格,别再忍受公式变乱码了!“AI 导出鸭”一键无损编译
  • 【OI】动态规划(入门)
  • 养虾热潮背后的技术本质与经济理性:从水质管理到生态平衡的深度解析
  • 拒绝“代码幻觉”与时区屎山:为什么 2026 年量化开发者都在从 AkShare/Tushare 转向 QuantDash?
  • 湖北专升本公办院校录取率真实推荐 - 新闻快传
  • 方向导数和梯度
  • 企业微信扫码一键登录OpenClaw:腾讯云身份中台实战指南
  • 银河麒麟V10服务器安装与初始化实战指南:从分区到Docker部署
  • 2026深圳GEO服务商推荐盘点:6家实力较强的优化公司解析,科技与外贸企业合作选择指南+签约避坑FAQ详解 - 商业大观
  • 二、AFSIM核心应用
  • SVN高效开发:配置Beyond Compare实现专业文件对比与三向合并
  • OpenClaw智能体框架实战:29个真实场景用例,从安装到生产力倍增
  • JavaWeb图书管理系统实战:从Servlet/JSP到MVC架构的完整开发指南
  • 2026年电话机器人品牌深度解析:谁更适合企业高转化获客 - 新闻快传
  • 【原】API安全学习总结
  • 湖北哪三家专升本机构实力最强 - 新闻快传
  • flutter等跨平台app上架appStore的13和6.5英寸图片和视频获取
  • 一图告诉你什么是物料编码 - 智慧园区
  • 锤子助手第099个开关:禁用设置页面个人信息与权限的位置、安全检查与隐私控制边界