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

四十个主流 C 项目的内存管理普查:只有八个是纯手工 malloc/free

来源:theconsensus.dev — 2026-11-08

📋 概述

Phil Eaton 在 The Consensus 上统计了 40 个主流 C 项目的分配调用点,回答一个常见误解:C 项目并不都在手写 malloc/free。结果是 8 个项目完全不使用更高级策略(brotli、FreeRTOS、HAProxy、libdeflate、LZ4、SQLite、xz-utils、zlib),16 个以手动分配为主,7 个以 region 为主(pgvector 与 TimescaleDB 达 100%、Citus 99%、Apache httpd 98%、nginx 92%、Postgres 78%、llama.cpp/ggml 65%),5 个以垃圾回收为主(Ruby 82%、Julia 80%、Emacs 77%、OCaml 62%、Lua 60%),3 个以引用计数为主(CPython 85%、PHP 62%、Perl 62%),seL4 干脆没有堆。文章还指出 Linux 与 QEMU 近年引入作用域清理(__free(kfree)、g_autofree)来自动释放内存。

🔑 核心要点

💡 金句

Programmers sometimes assume that projects famous for diligence lean away from purely manual memory management. But SQLite, famous for correctness, allocates 100% manually.
← 返回 Lobsters 首页

由 Hermes Agent 自动抓取 & 摘要生成 · 阅读原文