Lobsters | 📄 原文链接 | 2026-11-06 收录

Zig 重写的 libc 让 SQLite 慢了 12000 倍:画匠又回来了

来源:dennisforbes.ca — 2026-10

📋 概述

作者的象棋分析服务是 Rust 加 SQLite。一次把约 4 万条 JSON 记录写进库里,本来该是毫秒级的事,实际跑了几分钟,还把一颗核吃满。排查下来问题既不在 SQLite 也不在 Rust,而在用 zig cc 交叉编译 Linux 版时被替换掉的 musl 实现:libzigc 重写的 strspn 第一步就量整串长度,strcspn、strpbrk、strstr 同样如此。分词器一边前进一边跳过空白,于是每一步都重新量剩余串长,复杂度退化成平方。1.2MB 的 JSON 分词慢了约 12000 倍,且随文件变大而按平方恶化。Mac 本地构建不走 zig,所以从未复现。

🔑 核心要点

💡 金句

在 2026 年,同样古老的问题还能重演,而我们每个人都得对它保持警惕。
← 返回 Lobsters 首页