lizongying/nolang
生成於本地工具鏈 (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%;疑似並發/控制流未生效,程序在極短時間內結束) |