Benchmarks Game — Nolang vs C vs Rust 性能對比報告

举报
大漠孤煙 发表于 2026/07/25 00:55:26 2026/07/25
【摘要】 lizongying/nolanglizongying/no-benchmarks生成於本地工具鏈 (no build c09d758, gcc, rustc)。 說明C / Rust / Nolang 實現已在本機實際編譯並執行,數據來自 /usr/bin/time -l 與 Python time.perf_counter()(中位數,各 3 次執行)。Nolang 欄位若顯示數值代表已...

lizongying/nolang
lizongying/no-benchmarks

生成於本地工具鏈 (no build c09d758, gcc, rustc)。

說明

  • C / Rust / Nolang 實現已在本機實際編譯並執行,數據來自 /usr/bin/time -l 與 Python time.perf_counter()(中位數,各 3 次執行)。
  • Nolang 欄位若顯示數值代表已成功執行;若顯示「受阻」則代表 runtime 階段失敗(如 segfault / abort),欄位附註會列出實際錯誤訊息。(詳見末節受阻清單)。
  • 指標:Wall = 牆鐘時間(以 time.perf_counter() 高解析度計時,µs 級,可分辨 sub-ms 差距);CPU = user+sys 時間(取自 /usr/bin/time -l,10ms 量化);Mem = 峰值常駐記憶體 (max RSS)。時間單位為 ms(毫秒,2 位小數),記憶體單位為 MB。
  • 表格布局:列為三種語言 (C / Rust / Nolang),列為三項指標 (Wall / CPU / Mem)。

總計:13 個基準,C/Rust 可執行 13 個,Nolang 可執行 12 個、受阻 1 個。

字串處理 (String Processing)

fasta

指標 C Rust Nolang
Wall 54.38 ms 67.30 ms 38.20 ms
CPU 20.00 ms 40.00 ms 10.00 ms
Mem 2.9 MB 1.5 MB 1.4 MB

reverse-complement

指標 C Rust Nolang
Wall 36.90 ms 26.20 ms 25.95 ms
CPU 10.00 ms 0.00 ms 0.00 ms
Mem 3.3 MB 1.8 MB 19.4 MB

k-nucleotide

指標 C Rust Nolang
Wall 36.78 ms 26.12 ms 26.88 ms
CPU 10.00 ms 0.00 ms 0.00 ms
Mem 3.2 MB 1.9 MB 18.1 MB

regex-redux

指標 C Rust Nolang
Wall 40.48 ms 29.93 ms 25.93 ms
CPU 10.00 ms 0.00 ms 0.00 ms
Mem 3.2 MB 1.9 MB 4.2 MB

數值計算 (Numeric)

spectral-norm

指標 C Rust Nolang
Wall 184.55 ms 173.78 ms 171.68 ms
CPU 150.00 ms 150.00 ms 150.00 ms
Mem 3.1 MB 1.6 MB 1.4 MB

mandelbrot

指標 C Rust Nolang
Wall 96.37 ms 81.64 ms 75.41 ms
CPU 60.00 ms 60.00 ms 50.00 ms
Mem 3.0 MB 1.5 MB 1.5 MB

n-body

指標 C Rust Nolang
Wall 90.22 ms 48.44 ms 46.96 ms
CPU 60.00 ms 20.00 ms 20.00 ms
Mem 2.9 MB 1.5 MB 1.4 MB

pidigits

指標 C Rust Nolang
Wall 34.94 ms 25.04 ms 24.56 ms
CPU 0.00 ms 0.00 ms 0.00 ms
Mem 2.9 MB 1.5 MB 1.4 MB

演算法 (Algorithms)

fannkuch-redux

指標 C Rust Nolang
Wall 154.23 ms 99.06 ms 98.59 ms
CPU 120.00 ms 70.00 ms 70.00 ms
Mem 2.9 MB 1.5 MB 1.4 MB

binary-trees

指標 C Rust Nolang
Wall 1701.72 ms 411.88 ms 109.92 ms
CPU 1650.00 ms 380.00 ms 80.00 ms
Mem 12.6 MB 9.6 MB 7.4 MB

meteor-contest

指標 C Rust Nolang
Wall 44.45 ms 31.97 ms 36.14 ms
CPU 10.00 ms 10.00 ms 10.00 ms
Mem 2.9 MB 1.5 MB 1.3 MB

並發 (Concurrency)

chameneos-redux

指標 C Rust Nolang
Wall 29.46 ms 22.76 ms 21.67 ms
CPU 0.00 ms 0.00 ms 0.00 ms
Mem 2.9 MB 1.6 MB 1.3 MB

thread-ring

指標 C Rust Nolang
Wall 1676.86 ms 1729.19 ms 受阻
CPU 12430.00 ms 13370.00 ms 受阻
Mem 10.7 MB 10.0 MB 受阻
  • Nolang 受阻: runtime 未實際執行(wall≈23ms,僅為 C/Rust 耗時 1729ms 的 1.3%;疑似並發/控制流未生效,程序在極短時間內結束)

Nolang 受阻清單

以下 1 個基準雖已成功編譯(通過語法/型別檢查並產出可執行檔),但 runtime 階段失敗。
受阻源自 Nolang 編譯器生成的 LLVM IR 在 runtime 有缺陷(如 segfault、double-free、index out of bounds),並非原始碼錯誤。

基準 受阻階段 首行錯誤
thread-ring runtime(已成功編譯產出可執行檔) runtime 未實際執行(wall≈23ms,僅為 C/Rust 耗時 1729ms 的 1.3%;疑似並發/控制流未生效,程序在極短時間內結束)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。