内存就是利润:嵌入式里『选语言』其实是个成本决策
做路由器很多年,我最深的体会之一:
在硬件产品里,RAM 就是 BOM,BOM 就是利润。
所以"用 Python 还是用 C / Rust"这件事,从来不是技术偏好,而是一笔成本账。可惜大多数讨论都停在"哪个语言好",没人算钱。
一笔账:128 / 256 / 512 的差价 × 出货量
拿最常见的档位说(数字是示意,别抠精确价):
| 内存档 | 每颗 DRAM 差价(示意) |
|---|---|
| 128 → 256MB | 约 $0.3 ~ $1 |
| 256 → 512MB | 约 $0.5 ~ $1.5 |
单台看着很小,乘上出货量就吓人:
10 万台 × $0.5 = $50,000
而"用 Python 省下的开发人力",撑死也就几万刀。出货量一大,物料省下的钱就超过人力省下的钱。 这就是硬件公司的算法。
内存还不只是钱
对 7×24 的设备,内存还是:
- 功耗 / 散热 / 体积(更小内存 → 更省电 → 更小电源/散热);
- 可靠性(内存越紧,越容易 OOM / 抖动——对出货设备都是隐患)。
省内存 = 省电、省热、省故障。
所以"Python 的开发效率"要这么算
Python 省的是人力 / 时间,多花的是每台设备的物料:
| Python | C / Go / Rust | |
|---|---|---|
| 开发人力 | ✅ 少 | ❌ 多 |
| 单机内存 | ❌ 贵(解释器常驻几十 MB) | ✅ 省 |
| 出货量大时谁赢 | — | ✅ 物料 > 人力 |
判断轴:不是"哪个语言好",而是——
"出货量 × 单机内存差价" vs "开发人力"。
从这条轴推出的结论
| 场景 | 谁赢 | 为什么 |
|---|---|---|
| 大批量出货硬件(路由/消费设备) | C / Go / Rust | 物料 > 人力 |
| 小批量 / 高复杂度 / 内部工具 / 云 | Python | 人力 > 物料 |
| 原型 / 胶水 / 工具链 | Python | 快,且不进出货 BOM |
所以现实里从来是分层:紧内存设备用 C/Go/Rust,Python 放上游编排 / 工具链 / 非出货设备——它没被淘汰,只是站错了位置。
那 Rust 呢?理想,但理想还没到手
Rust 的卖点正是"两全":像现代语言一样安全、省心,运行时又接近 C——理论上它同时吃"开发效率"和"低内存"。
但要诚实:Rust 当下的开发效率还没追上 Python(尤其原型 / 胶水),学习曲线也在。所以 "Rust = 两全"是方向,不是当下。 对紧内存设备,C/Rust 是现实解;对能上几十 MB 的档,Python 依然香。
收尾
工程师不只要会写代码,还要会算账:
一台设备多 128MB 内存 = 多少颗 DRAM = 多少美元 → × 出货量 = 你的利润。
内存就是钱。选语言,就是花钱的方式。
💬 你们的产品里,内存是怎么算进成本的?在下方评论,或到 GitHub 提 Issue 聊聊。
(本文中英双语。)
评论 0
还没有评论,来抢沙发~
登录 登录后即可参与评论