<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Amdahl定律 | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《软件慢是因为设计差，不是因为语言慢》</title><link>https://channel.meo-ai.com/posts/738</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/738</guid><pubDate>Sat, 31 Oct 2026 01:02:49 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《软件慢是因为设计差，不是因为语言慢》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;br /&gt;&lt;a href=&quot;/search/result?q=%23%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B&quot; title=&quot;#软件工程&quot;&gt;#软件工程&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96&quot; title=&quot;#性能优化&quot;&gt;#性能优化&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;/search/result?q=%23%E6%80%A7%E8%83%BD%E7%93%B6%E9%A2%88%E5%88%86%E6%9E%90&quot; title=&quot;#性能瓶颈分析&quot;&gt;#性能瓶颈分析&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23IO%E5%AF%86%E9%9B%86%E5%9E%8B&quot; title=&quot;#IO密集型&quot;&gt;#IO密集型&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Amdahl%E5%AE%9A%E5%BE%8B&quot; title=&quot;#Amdahl定律&quot;&gt;#Amdahl定律&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23AI%E8%BE%85%E5%8A%A9%E4%BC%98%E5%8C%96&quot; title=&quot;#AI辅助优化&quot;&gt;#AI辅助优化&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1&quot; title=&quot;#系统设计&quot;&gt;#系统设计&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E8%AF%AD%E8%A8%80%E9%80%89%E5%9E%8B%E8%AF%AF%E5%8C%BA&quot; title=&quot;#语言选型误区&quot;&gt;#语言选型误区&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;这篇文章反驳了“用 AI 把软件重写成 C/Rust 就能变快”的流行观点。作者的核心论点是：大多数真实程序是 I/O 密集型的，性能瓶颈在数据库、网络和磁盘等待上，语言本身的执行速度只占很小一部分；即使遇到 CPU 密集型热点，慢语言也早已通过调用 C 级库（如机器学习中的矩阵运算）把重活外包了出去。真正有效的提速来自重新设计——缓存、异步、并行、消除 N+1 查询——而不是逐行翻译代码。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;1. 大多数真实程序（尤其是 CRUD 类应用）是 I/O 密集型的：一次请求可能 50% 的时间花在数据库查询上，重写语言最多只能优化另外那 50%，按照 Amdahl 定律，整体提速上限约为 1.5～2 倍，远达不到数量级提升。&lt;br /&gt;2. 慢语言早已学会“外包”：Python 之所以能打机器学习这类 CPU 密集场景，是因为 NumPy 等库把矩阵运算下放到高度优化的 C/汇编甚至 GPU 上——如果程序 80% 时间在 GPU 上做矩阵乘，用 C 重写 Python 代码毫无意义。&lt;br /&gt;3. Bryan Cantrill 2018 年的经典案例佐证“设计 &amp;gt; 语言”：他把精心优化的 C 程序移植到 Rust 时借用检查器处处碰壁，改用“Rust 朴素写法”后反而快 30%——原因是 Rust 内部默认用 B 树而非二叉搜索树，缓存效率更高。&lt;br /&gt;4. 作者亲历的有效提速手段全部是设计层面的：缓存慢操作、异步化/后台任务、并行化、把 N 条 SQL 合成一条、用快查询替换慢查询、跳过不必要的操作——没有一条与语言速度有关。&lt;br /&gt;5. 慢语言反而可能更利于优化：高层语言代码一眼就能看出程序在做什么，更容易发现 N+1 查询或可异步化的 API 调用；如果先重写成汇编，这些结构性问题反而难以察觉。&lt;br /&gt;6. 少数真正 CPU 密集的热点（如 tiktoken 用汇编重写提速 5 倍）确实存在，但属于窄缝场景；而且这类提速往往也来自重新设计（去掉正则依赖），不是语言本身的功劳。&lt;br /&gt;7. 给 AI 时代的实用建议：别指挥智能体“把它重写成 C/Rust 来提速”，而要让它去分析火焰图、定位热点、提出重设计方案——语言重写只在极少数不可再简化的 CPU 密集热点处才值得动用。&lt;br /&gt;&lt;br /&gt;URL：&lt;a href=&quot;https://seangoedecke.com/software-is-slow-because-of-bad-design-not-slow-languages/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://seangoedecke.com/software-is-slow-because-of-bad-design-not-slow-languages/&quot;&gt;https://seangoedecke.com/software-is-slow-because-of-bad-design-not-slow-languages/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://seangoedecke.com/software-is-slow-because-of-bad-design-not-slow-languages&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Many people are saying that AI will make software faster by rewriting it in faster languages, but this isn’t generally true. Most programs cannot be…&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Seangoedecke&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;Software is slow because of bad design, not slow languages&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Many people are saying that AI will make software faster by rewriting it in faster languages, but this isn’t generally true. Most programs cannot be…&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>