fast_float 作者实测:给数字解析器加提示,吞吐可翻倍至 3.5 亿/秒
lemire · x · 2026-11-10
Daniel Lemire(fastfloat 库作者,该库已进入 GCC C++ 标准库)发文讲解如何通过"提示"(hints)加速数字解析。
原理:解析 -731.51 这类数字需要判断符号、位数、小数点位置、舍入模式等多个分支。现代 CPU 用分支预测投机执行,猜对近乎免费,猜错则浪费 15-20 个周期。当数据特征随机(如盈亏列的随机正负号)时预测频繁失败,性能大跌。
做法:fastfloat 新增提示 API,让调用者告知解析器数据特征:unpredictablesign(符号随机)、shortnumbers(位数短)、assumeroundtonearest(默认舍入模式)。
实测结果(两张图分别为两代 CPU,单位为每秒百万数):
- 在新硬件上,shortnumbers + assumeroundtonearest 提示使盈亏数据(-731.51)解析从 153 提升到 347 M/s,提升超一倍;常规价格数据达 355 M/s。
- 传感器读数(42.5、0.375、7)从 123 提到 250 M/s。
- 旧硬件上提升幅度较小但方向一致;个别场景(如余额数据的 shortnumbers 提示)提示选择不当反而略降。
结论:了解数据分布并显式告知解析器,是廉价且显著的性能优化手段。
「Infra」频道最新
- CoreWeave 连续 4 季营收超指引中值 2%-11%,但支出远跑在收入前 — tengyanAI · 2026-11-10
- 数据中心受阻将倒逼 AI 公司提升单位算力效率 — burny_tech · 2026-11-10
- 曝黄仁勋绯闻对象经手 75 亿美元芯片流入中国,涉约 24 万张 H100/H200 — rohanpaul_ai · 2026-11-10
- 分析师推测中芯国际系 fab 用光刻返工漏洞验证国产设备 — pstAsiatech · 2026-11-10
- Anthropic 签下 34 亿美元协议,为 Claude 数据中心购 1.7GW 燃气发电机 — YvesMulkers · 2026-11-10
- 8 个隐形系统设计坑与修法:缓存雪崩、热点分区、重复请求 — goyalshaliniuk · 2026-11-10