
研究者以开源实践推动JSON解析性能突破
来源标题:Open Source as a Research Method
开源项目simdjson将JSON解析速度从每秒数百MB提升至约4.8 GB/s,作者认为构建开源软件本身就是研究方法。解析提速后,浮点数转换成为新瓶颈,由此催生了后续的Eisel-Lemire算法研究。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
很多人仍然把创新想象成一条线:教授思考并发表论文,工程师读论文并设计产品,客户消费产品。
但事情很少这样运转。工业革命并不是由教授写论文引发的,而是由大众对更便宜、更好衣服的需求驱动的。需求在先。
Michael Stonebraker 在《Where We Have Failed》(2018)中提出了一个相关的观点。他认为数据库研究社区已经失去了自己的客户:“没有‘真实世界’的客户让我们保持专注。”没有客户,研究就会漂移。
2019 年,JSON 无处不在,而解析它很慢,每秒只有几百兆字节。于是我们构建了 simdjson。如今它每秒能解析数 GB 的 JSON;在最近的一台 Intel Xeon 上,我在 twitter.json 上测到大约 4.8 GB/s。
Fred Brooks 写道:“科学家为了研究而构建;工程师为了构建而研究。”在我的工作中,构建就是我研究的方式。
一旦 simdjson 能快速解析 JSON,一个新的瓶颈就出现了:浮点数。如果其他一切都很快,那么把像 3.1416 这样的字符串转换成二进制浮点数就会主导运行时间。这促成了如今被称为 Eisel-Lemire 算法的东西,它既精确又快速(Number Parsing at a Gigabyte per Second)。它现在已经进入 Rust、Go、.NET 和 C++(通过 fast_float)的标准库。
然后是下一个瓶颈。解析 JSON 也意味着验证 UTF-8,而安全性取决于能否正确做到这一点。我们把验证降到了每字节不到一条指令。那部分代码分离成了自己的库 simdutf,如今被 Node.js、Bun、Deno 和网页浏览器用于 Unicode 验证和转码。
这一切都不是我站在山顶上规划出来的。Stonebraker 说得好:“我的想法来自两个来源:与有真实问题的真实用户交谈,然后试着解决它们。”开源给了我这些用户。他们带着 bug 报告、对抗性输入、奇特的硬件和我永远想象不到的工作负载出现。Pull request 和代码审查往往是一种比大多数程序委员会更严格的同行评审形式。依赖你代码的评审者读你的代码,比 skim 你论文的审稿人更仔细。
David Patterson 在《How to Build a Bad Research Center》(2014)中写道,对于他成功的项目,“早期的指标不是论文或奖项,而是非研究人员试图使用我们的想法。”我同意。
现在我们有了 AI,开源还同样重要吗?如果模型能为你写代码,为什么还要费心发布你的代码?
我看到的情况指向相反的方向。比以往更多的人为我的项目做贡献,比以往更多的人使用我的代码和想法。AI 工具似乎让人们更容易——而不是更难——去阅读一个不熟悉的代码库、找到问题并发送修复。
上周(2026 年 10 月 29 日),我是 SERIQ 启动仪式上四位受邀演讲者之一,SERIQ 是新的 Centre interuniversitaire de recherche en génie logiciel pour la société numérique。SERIQ 延续了 SEMTL(Software Engineering at Montreal)会议,该会议十多年来一直把蒙特利尔的软件工程研究人员聚集在一起。新中心由 Université de Montréal、Polytechnique Montréal、McGill University 和 École de technologie supérieure 支持,旨在覆盖整个魁北克。大约一百人来到 Université de Montréal 的 Pavillon Jean-Coutu 参加活动。
我们每人有十五分钟。之后,我们四人坐下来参加了一场关于面向社会的软件研究的座谈会,由 Martin Robillard(McGill)主持。
Daniel Lemire,"Open source as a research method," in Daniel Lemire's blog, November 4, 2026, https://lemire.me/blog/2026/11/04/open-source-as-a-research-method/.
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。