主要观点:尝试制作“快速构建”的语言/编译器,从解析/词法开始,对不同语言的编译器和解释器进行性能测试。
关键信息:
- 生成 1000 万行不同语言(C、Python、Lua、JavaScript、Luv)的文件进行测试,文件大小在 193M 到 237M 之间。
- 测试在 Windows 11 系统的 Ryzen 9 24 核 3900X 电脑上进行,多数工具单线程运行。
- C 编译器中,msvc 版本 19.41.34123 语法检查需 43.719s,clang 版本 19.1.0 语法检查需 22.156s,clang-17 语法检查需 2m21s,tcc 运行 dumbbench.c 需 11.172s。
- Python 3.9.2 运行 dumbbench.py 需 53.609s。
- PUC Rio 5.4.7 的 Lua 运行 dumbbench.lua 需 6.359s,LuaJIT 2.1 需 4.750s。
- Bun 运行 dumbbench.js 出现“Maximum call stack size exceeded”错误,需 7.437s,Node 需 5.391s。
- 按性能从差到好排序:Bun(失败)、Python(53.6s)、msvc(43.7s)、clang(22.1s)、tcc(11.1s)、Lua(6.4s)、Node(5.4s)、LuaJIT(4.8s),后添加 Rust 需 436s(7 分 16 秒)。
重要细节: - Lua 因实现限制将文件拆分为多个子文件。
- 测试文件无类似
#include
的行为,Windows 文件系统对性能影响不大。 - 简单 Windows C 程序读取 200M 文件约需 50 - 80ms,顺序扫描并每 4 个字符写一个字节约需 80ms,约 150 - 200ms 为基准线。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。