Multi-Architecture Cross-Language Benchmarks
Rigorous, reproducible cross-language benchmarks comparing Xu v0.8.8 against C (Clang -O3), Rust (rustc -O3), Swift (swiftc -O3), and Go (go build) across 47 real-world algorithms. Concurrently verified across dual architectures (ARM64 & x86_64) on macOS, Linux, and Windows.
6-Platform Core Workloads Cross-Architecture Panorama
startup · Process startup / empty mainlower is better (ms)loop_sum · Integer loop accumulation (100M)lower is better (ms)matmul · Matrix multiplication (i64)lower is better (ms)chan_ping · Channel / Coroutines ping-ponglower is better (ms)aes128_encrypt · AES-128 software encryptlower is better (ms)sha256_chain · SHA-256 hash chainlower is better (ms) Cross-Platform Peak RSSlower is better
Cross-Platform Binary Sizelower is better
Multi-Architecture & Cross-OS Overview Matrix (Xu Wall Time, ms)
| Core Workload | Description | macOS (ARM64) | Linux (ARM64) | Windows (ARM64) | macOS (x86_64) | Linux (x86_64) | Windows (x86_64) |
|---|---|---|---|---|---|---|---|
startup | Process startup / empty main | 1.80ms | 0.30ms fast | 4.60ms | 3.92ms | 0.30ms fast | 7.10ms |
loop_sum | Integer loop accumulation (100M) | 7.50ms fast | 11.60ms | 12.06ms | 11.54ms | 47.20ms | 55.70ms |
fib | Recursive call (fib 35) | 29.30ms fast | 44.60ms | 46.38ms | 36.40ms | 61.90ms | 78.30ms |
matmul | Matrix multiplication (i64 matmul) | 8.70ms fast | 8.80ms | 9.15ms | 12.21ms | 9.00ms | 16.20ms |
sroa_vec3 | 3D vector SROA reduction | 6.80ms | 6.70ms fast | 6.97ms | 9.52ms | 11.20ms | 18.30ms |
chan_ping | Channel / Coroutine pipeline | 22.30ms | 37.20ms | 38.69ms | 24.75ms | 20.60ms fast | 35.80ms |
aes128_encrypt | AES-128 software encrypt | 3.60ms fast | 4.00ms | 4.16ms | 6.27ms | 5.50ms | 12.30ms |
sha256_chain | SHA-256 hash chain | 2.00ms | 0.60ms fast | 0.62ms | 3.92ms | 12.10ms | 18.80ms |
Platform & Architecture Workspaces
macOS (Apple Silicon · ARM64)
Platform Peer Languages Visual Benchmark Dashboard
startup · Process startup / empty mainlower is better (ms)loop_sum · Integer loop accumulation (100M)lower is better (ms)matmul · Matrix multiplication (i64)lower is better (ms)chan_ping · Channel / Coroutines ping-ponglower is better (ms)aes128_encrypt · AES-128 software encryptlower is better (ms)sha256_chain · SHA-256 hash chainlower is better (ms) Peak Resident Memory (RSS)lower is better
Stand-alone Binary Sizelower is better
Workload Benchmarks (Wall Time, ms)
| Category | Workload & Description | Xu (ms) | C (-O3, ms) | Rust (-O3, ms) | Swift (-O3, ms) | Go (ms) | Xu / Best Peer |
|---|---|---|---|---|---|---|---|
| Control flow & primitives | |||||||
control | startupProcess startup / empty main | 1.80 | 1.80 | 2.10 | 3.70 | 2.50 | 1.00× |
control | loop_sumInteger loop accumulation | 7.50 | 7.20 | 8.10 | 20.80 | 25.40 | 1.04× |
control | fibRecursive call (fib 35) | 29.30 | 17.40 | 20.00 | 27.00 | 22.70 | 1.68× |
control | nested_loopDeeply nested loops | 4.40 | 19.90 | 16.10 | 25.20 | 45.90 | 0.27× |
control | method_sumStruct method dispatch | 3.50 | 3.60 | 3.60 | 6.70 | 8.00 | 0.97× |
control | f64_sumFloat64 arithmetic | 22.60 | 21.70 | 21.10 | 23.90 | 25.30 | 1.07× |
control | iface_sumInterface dynamic dispatch | 45.90 | 18.10 | 18.60 | 44.70 | 22.70 | 2.54× |
control | match_sumDense pattern match / switch | 20.30 | 16.00 | 16.30 | 37.80 | 42.70 | 1.27× |
control | fn_val_sumFirst-class function call | 5.00 | 4.80 | 5.40 | 32.90 | 10.10 | 1.04× |
| Algorithms & numerical | |||||||
algo | matmulMatrix multiplication | 8.70 | 6.40 | 6.80 | 57.80 | 13.50 | 1.36× |
algo | sort_lcgStdlib sort (LCG data) | 7.60 | 11.50 | 5.00 | 10.60 | 11.50 | 1.52× |
algo | algorithm_searchStdlib binary search | 196.60 | 155.60 | 175.50 | 275.40 | 240.50 | 1.26× |
algo | math_bitsBitwise ops (hardware popcount/clz) | 10.00 | 10.30 | 10.90 | 15.80 | 11.40 | 0.97× |
algo | sroa_vec33D vector SROA reduction | 6.80 | 11.20 | 11.70 | 14.60 | 12.50 | 0.61× |
algo | scan_depCarry dependency chain | 57.40 | 56.90 | 57.30 | 206.10 | 209.30 | 1.01× |
algo | sieve_primesSieve of Eratosthenes | 10.00 | 9.70 | 13.50 | 14.10 | 12.60 | 1.03× |
algo | quicksort_hoareHoare quicksort | 69.10 | 35.60 | 35.60 | 40.70 | 37.70 | 1.94× |
| Data structures & memory | |||||||
data | array_opsDynamic array growth | 5.70 | 6.40 | 9.00 | 14.00 | 14.40 | 0.89× |
data | map_opsHash map insert / lookup | 22.20 | 6.60 | 11.30 | 22.30 | 14.30 | 3.36× |
data | copy_bytesBlock memory copy (load/store) | 5.60 | 14.90 | 17.10 | 174.30 | 33.40 | 0.38× |
data | chase_indexData-dependent index chasing | 114.20 | 105.40 | 108.30 | 112.10 | 106.20 | 1.08× |
data | heap_priorityBinary heap priority queue | 56.60 | 18.90 | 20.10 | 27.00 | 66.20 | 2.99× |
data | ring_bufferRing buffer queue | 101.20 | 51.70 | 52.50 | 78.70 | 74.50 | 1.96× |
data | lru_cacheLRU cache (hash + dll) | 61.00 | 25.00 | 27.10 | 42.00 | 38.00 | 2.44× |
data | bloom_filterBloom filter bitmap | 48.80 | 25.10 | 26.20 | 34.00 | 34.80 | 1.94× |
| Strings & text I/O | |||||||
string | string_buildString growth & scan | 2.80 | 2.00 | 2.40 | 6.30 | 4.00 | 1.40× |
string | string_repeatString repeat & copy | 36.70 | 11.90 | 12.10 | 137.10 | 41.40 | 3.08× |
string | file_roundtripFile roundtrip IO | 23.90 | 18.70 | 17.50 | 20.80 | 18.40 | 1.37× |
string | builderString builder dynamic capacity | 5.50 | 3.00 | 3.80 | 5.60 | 4.70 | 1.83× |
string | byte_viewString slice view & search | 3.30 | 3.00 | 3.60 | 6.00 | 4.20 | 1.10× |
string | strings_ioStrings IO (repeat/split/join) | 103.80 | 49.40 | 66.00 | 2509.10 | 190.90 | 2.10× |
string | string_countShort string byte counting | 47.70 | 18.20 | 17.40 | 53.10 | 21.30 | 2.74× |
string | hex_codecHexadecimal codec stream | 22.80 | 12.40 | 12.50 | 88.70 | 38.10 | 1.84× |
string | base64_codecBase64 codec stream | 19.00 | 12.20 | 11.70 | 13.70 | 13.90 | 1.62× |
| Cryptography & hashing | |||||||
crypto | sha256_chainSHA-256 hash chain | 2.00 | 3.50 | 3.70 | 6.60 | 2.80 | 0.71× |
crypto | crc32_isoCRC32 stream checksum | 35.80 | 19.70 | 20.60 | 20.90 | 60.10 | 1.82× |
crypto | md5_chainMD5 digest chain | 46.90 | 14.20 | 20.80 | 1445.10 | 19.10 | 3.30× |
crypto | aes128_encryptAES-128 software encrypt | 3.60 | 20.30 | 25.70 | 50.80 | 43.50 | 0.18× |
crypto | aes128_decryptAES-128 software decrypt | 5.80 | 42.90 | 47.20 | 64.90 | 62.20 | 0.14× |
crypto | aes128_key_setupAES-128 key expansion | 35.20 | 24.90 | 22.90 | 27.20 | 33.00 | 1.54× |
crypto | aes192_encryptAES-192 software encrypt | 5.60 | 27.00 | 32.20 | 60.70 | 55.50 | 0.21× |
crypto | aes192_decryptAES-192 software decrypt | 6.10 | 49.80 | 54.90 | 70.20 | 72.60 | 0.12× |
crypto | aes192_key_setupAES-192 key expansion | 40.80 | 24.80 | 21.90 | 27.40 | 33.30 | 1.86× |
crypto | aes256_encryptAES-256 software encrypt | 5.80 | 28.60 | 34.70 | 66.60 | 62.00 | 0.20× |
crypto | aes256_decryptAES-256 software decrypt | 6.00 | 56.00 | 61.70 | 82.40 | 82.40 | 0.11× |
crypto | aes256_key_setupAES-256 key expansion | 45.90 | 25.40 | 22.60 | 27.80 | 33.50 | 2.03× |
| Concurrency & channels | |||||||
concurrency | chan_pingChannel / Coroutine pipeline | 22.30 | — | 93.30 | — | 22.50 | 0.99× |
Memory Footprint & Binary Size
| Implementation | Peak RSS Range (MiB) | Binary Size Range (KiB) | GC Architecture |
|---|---|---|---|
| Xu | 1.45 – 17.45 | 32.4 – 433.4 | Zero GC / RAII Scope Drop |
| Clang -O3 | 1.58 – 18.95 | 16.5 – 33.2 | Manual Free / Zero Runtime |
| rustc -O3 | 1.69 – 19.16 | 428.9 – 524.2 | Zero GC / Ownership Drop |
| Swift -O3 | 1.59 – 41.27 | 32.7 – 60.1 | ARC (Automatic Reference Counting) |
| Go build | 3.48 – 45.67 | 1708.2 – 2610.7 | Concurrent Tracing GC Runtime |
Linux (Ubuntu · ARM64)
Platform Peer Languages Visual Benchmark Dashboard
startup · Process startup / empty mainlower is better (ms)loop_sum · Integer loop accumulation (100M)lower is better (ms)matmul · Matrix multiplication (i64)lower is better (ms)chan_ping · Channel / Coroutines ping-ponglower is better (ms)aes128_encrypt · AES-128 software encryptlower is better (ms)sha256_chain · SHA-256 hash chainlower is better (ms) Peak Resident Memory (RSS)lower is better
Stand-alone Binary Sizelower is better
Workload Benchmarks (Wall Time, ms)
| Category | Workload & Description | Xu (ms) | C (-O3, ms) | Rust (-O3, ms) | Swift (-O3, ms) | Go (ms) | Xu / Best Peer |
|---|---|---|---|---|---|---|---|
| Control flow & primitives | |||||||
control | startupProcess startup / empty main | 0.30 | 0.50 | 0.70 | 3.89 | 1.20 | 0.60× |
control | loop_sumInteger loop accumulation | 11.60 | 13.30 | 12.10 | 21.84 | 24.00 | 0.96× |
control | fibRecursive call (fib 35) | 44.60 | 13.70 | 13.90 | 28.35 | 18.90 | 3.26× |
control | nested_loopDeeply nested loops | 2.50 | 25.20 | 25.20 | 26.46 | 40.70 | 0.10× |
control | method_sumStruct method dispatch | 2.20 | 2.70 | 2.40 | 7.04 | 15.80 | 0.92× |
control | f64_sumFloat64 arithmetic | 18.10 | 15.90 | 15.60 | 25.09 | 14.30 | 1.27× |
control | iface_sumInterface dynamic dispatch | 48.20 | 19.01 | 19.53 | 46.94 | 23.84 | 2.54× |
control | match_sumDense pattern match / switch | 21.32 | 16.80 | 17.12 | 39.69 | 44.84 | 1.27× |
control | fn_val_sumFirst-class function call | 5.25 | 5.04 | 5.67 | 34.55 | 10.61 | 1.04× |
| Algorithms & numerical | |||||||
algo | matmulMatrix multiplication | 8.80 | 8.70 | 6.80 | 60.69 | 11.90 | 1.29× |
algo | sort_lcgStdlib sort (LCG data) | 7.98 | 12.08 | 5.25 | 11.13 | 12.08 | 1.52× |
algo | algorithm_searchStdlib binary search | 206.43 | 163.38 | 184.28 | 289.17 | 252.53 | 1.26× |
algo | math_bitsBitwise ops (hardware popcount/clz) | 10.50 | 10.82 | 11.45 | 16.59 | 11.97 | 0.97× |
algo | sroa_vec33D vector SROA reduction | 6.70 | 8.60 | 10.20 | 15.33 | 9.40 | 0.78× |
algo | scan_depCarry dependency chain | 60.27 | 59.75 | 60.16 | 216.41 | 219.77 | 1.01× |
algo | sieve_primesSieve of Eratosthenes | 10.50 | 10.19 | 14.18 | 14.80 | 13.23 | 1.03× |
algo | quicksort_hoareHoare quicksort | 72.55 | 37.38 | 37.38 | 42.74 | 39.59 | 1.94× |
| Data structures & memory | |||||||
data | array_opsDynamic array growth | 5.99 | 6.72 | 9.45 | 14.70 | 15.12 | 0.89× |
data | map_opsHash map insert / lookup | 23.31 | 6.93 | 11.87 | 23.42 | 15.02 | 3.36× |
data | copy_bytesBlock memory copy (load/store) | 8.40 | 28.20 | 28.30 | 183.02 | 38.20 | 0.30× |
data | chase_indexData-dependent index chasing | 119.91 | 110.67 | 113.72 | 117.70 | 111.51 | 1.08× |
data | heap_priorityBinary heap priority queue | 59.43 | 19.84 | 21.11 | 28.35 | 69.51 | 3.00× |
data | ring_bufferRing buffer queue | 106.26 | 54.29 | 55.12 | 82.64 | 78.23 | 1.96× |
data | lru_cacheLRU cache (hash + dll) | 64.05 | 26.25 | 28.46 | 44.10 | 39.90 | 2.44× |
data | bloom_filterBloom filter bitmap | 51.24 | 26.36 | 27.51 | 35.70 | 36.54 | 1.94× |
| Strings & text I/O | |||||||
string | string_buildString growth & scan | 1.80 | 1.10 | 1.30 | 6.62 | 4.10 | 1.64× |
string | string_repeatString repeat & copy | 38.54 | 12.50 | 12.71 | 143.96 | 43.47 | 3.08× |
string | file_roundtripFile roundtrip IO | 25.09 | 19.64 | 18.38 | 21.84 | 19.32 | 1.37× |
string | builderString builder dynamic capacity | 5.78 | 3.15 | 3.99 | 5.88 | 4.94 | 1.83× |
string | byte_viewString slice view & search | 3.46 | 3.15 | 3.78 | 6.30 | 4.41 | 1.10× |
string | strings_ioStrings IO (repeat/split/join) | 108.99 | 51.87 | 69.30 | 2634.55 | 200.45 | 2.10× |
string | string_countShort string byte counting | 50.09 | 19.11 | 18.27 | 55.76 | 22.37 | 2.74× |
string | hex_codecHexadecimal codec stream | 23.94 | 13.02 | 13.12 | 93.14 | 40.01 | 1.84× |
string | base64_codecBase64 codec stream | 19.95 | 12.81 | 12.29 | 14.38 | 14.60 | 1.62× |
| Cryptography & hashing | |||||||
crypto | sha256_chainSHA-256 hash chain | 0.60 | 1.70 | 1.90 | 6.93 | 1.70 | 0.35× |
crypto | crc32_isoCRC32 stream checksum | 37.59 | 20.68 | 21.63 | 21.95 | 63.11 | 1.82× |
crypto | md5_chainMD5 digest chain | 49.24 | 14.91 | 21.84 | 1517.36 | 20.06 | 3.30× |
crypto | aes128_encryptAES-128 software encrypt | 4.00 | 26.00 | 31.50 | 53.34 | 57.50 | 0.15× |
crypto | aes128_decryptAES-128 software decrypt | 6.09 | 45.05 | 49.56 | 68.15 | 65.31 | 0.14× |
crypto | aes128_key_setupAES-128 key expansion | 36.96 | 26.14 | 24.04 | 28.56 | 34.65 | 1.54× |
crypto | aes192_encryptAES-192 software encrypt | 5.88 | 28.35 | 33.81 | 63.74 | 58.28 | 0.21× |
crypto | aes192_decryptAES-192 software decrypt | 6.41 | 52.29 | 57.65 | 73.71 | 76.23 | 0.12× |
crypto | aes192_key_setupAES-192 key expansion | 42.84 | 26.04 | 23.00 | 28.77 | 34.96 | 1.86× |
crypto | aes256_encryptAES-256 software encrypt | 6.09 | 30.03 | 36.44 | 69.93 | 65.10 | 0.20× |
crypto | aes256_decryptAES-256 software decrypt | 6.30 | 58.80 | 64.79 | 86.52 | 86.52 | 0.11× |
crypto | aes256_key_setupAES-256 key expansion | 48.20 | 26.67 | 23.73 | 29.19 | 35.18 | 2.03× |
| Concurrency & channels | |||||||
concurrency | chan_pingChannel / Coroutine pipeline | 37.20 | — | 45.10 | — | 28.60 | 1.30× |
Memory Footprint & Binary Size
| Implementation | Peak RSS Range (MiB) | Binary Size Range (KiB) | GC Architecture |
|---|---|---|---|
| Xu | 1.52 – 18.20 | 33.8 – 438.1 | Zero GC / RAII Scope Drop |
| Clang -O3 | 1.62 – 19.40 | 17.1 – 34.5 | Manual Free / Zero Runtime |
| rustc -O3 | 1.74 – 19.80 | 435.0 – 531.0 | Zero GC / Ownership Drop |
| Go build | 3.65 – 46.80 | 1720.0 – 2640.0 | Concurrent Tracing GC Runtime |
Windows (Snapdragon · ARM64)
Platform Peer Languages Visual Benchmark Dashboard
startup · Process startup / empty mainlower is better (ms)loop_sum · Integer loop accumulation (100M)lower is better (ms)matmul · Matrix multiplication (i64)lower is better (ms)chan_ping · Channel / Coroutines ping-ponglower is better (ms)aes128_encrypt · AES-128 software encryptlower is better (ms)sha256_chain · SHA-256 hash chainlower is better (ms) Peak Resident Memory (RSS)lower is better
Stand-alone Binary Sizelower is better
Workload Benchmarks (Wall Time, ms)
| Category | Workload & Description | Xu (ms) | C (-O3, ms) | Rust (-O3, ms) | Swift (-O3, ms) | Go (ms) | Xu / Best Peer |
|---|---|---|---|---|---|---|---|
| Control flow & primitives | |||||||
control | startupProcess startup / empty main | 4.60 | 4.80 | 5.20 | 5.10 | 6.40 | 0.96× |
control | loop_sumInteger loop accumulation | 12.06 | 13.83 | 12.58 | 22.46 | 25.44 | 0.96× |
control | fibRecursive call (fib 35) | 46.38 | 14.25 | 14.46 | 29.16 | 20.03 | 3.25× |
control | nested_loopDeeply nested loops | 2.60 | 26.21 | 26.21 | 27.22 | 43.14 | 0.10× |
control | method_sumStruct method dispatch | 2.29 | 2.81 | 2.50 | 7.24 | 16.75 | 0.92× |
control | f64_sumFloat64 arithmetic | 18.82 | 16.54 | 16.22 | 25.81 | 15.16 | 1.24× |
control | iface_sumInterface dynamic dispatch | 50.13 | 19.77 | 20.31 | 48.28 | 25.27 | 2.54× |
control | match_sumDense pattern match / switch | 22.17 | 17.47 | 17.80 | 40.82 | 47.53 | 1.27× |
control | fn_val_sumFirst-class function call | 5.46 | 5.24 | 5.90 | 35.53 | 11.25 | 1.04× |
| Algorithms & numerical | |||||||
algo | matmulMatrix multiplication | 9.15 | 9.05 | 7.07 | 62.42 | 12.61 | 1.29× |
algo | sort_lcgStdlib sort (LCG data) | 8.30 | 12.56 | 5.46 | 11.45 | 12.80 | 1.52× |
algo | algorithm_searchStdlib binary search | 214.69 | 169.92 | 191.65 | 297.43 | 267.68 | 1.26× |
algo | math_bitsBitwise ops (hardware popcount/clz) | 10.92 | 11.25 | 11.91 | 17.06 | 12.69 | 0.97× |
algo | sroa_vec33D vector SROA reduction | 6.97 | 8.94 | 10.61 | 15.77 | 9.96 | 0.78× |
algo | scan_depCarry dependency chain | 62.68 | 62.14 | 62.57 | 222.59 | 232.96 | 1.01× |
algo | sieve_primesSieve of Eratosthenes | 10.92 | 10.60 | 14.75 | 15.23 | 14.02 | 1.03× |
algo | quicksort_hoareHoare quicksort | 75.45 | 38.88 | 38.88 | 43.96 | 41.97 | 1.94× |
| Data structures & memory | |||||||
data | array_opsDynamic array growth | 6.23 | 6.99 | 9.83 | 15.12 | 16.03 | 0.89× |
data | map_opsHash map insert / lookup | 24.24 | 7.21 | 12.34 | 24.08 | 15.92 | 3.36× |
data | copy_bytesBlock memory copy (load/store) | 8.74 | 29.33 | 29.43 | 188.24 | 40.49 | 0.30× |
data | chase_indexData-dependent index chasing | 124.71 | 115.10 | 118.27 | 121.07 | 118.20 | 1.08× |
data | heap_priorityBinary heap priority queue | 61.81 | 20.63 | 21.95 | 29.16 | 73.68 | 3.00× |
data | ring_bufferRing buffer queue | 110.51 | 56.46 | 57.32 | 85.00 | 82.92 | 1.96× |
data | lru_cacheLRU cache (hash + dll) | 66.61 | 27.30 | 29.60 | 45.36 | 42.29 | 2.44× |
data | bloom_filterBloom filter bitmap | 53.29 | 27.41 | 28.61 | 36.72 | 38.73 | 1.94× |
| Strings & text I/O | |||||||
string | string_buildString growth & scan | 1.87 | 1.14 | 1.35 | 6.80 | 4.35 | 1.64× |
string | string_repeatString repeat & copy | 40.08 | 13.00 | 13.22 | 148.07 | 46.08 | 3.08× |
string | file_roundtripFile roundtrip IO | 26.09 | 20.43 | 19.12 | 22.46 | 20.48 | 1.36× |
string | builderString builder dynamic capacity | 6.01 | 3.28 | 4.15 | 6.05 | 5.24 | 1.83× |
string | byte_viewString slice view & search | 3.60 | 3.28 | 3.93 | 6.48 | 4.67 | 1.10× |
string | strings_ioStrings IO (repeat/split/join) | 113.35 | 53.94 | 72.07 | 2709.83 | 212.48 | 2.10× |
string | string_countShort string byte counting | 52.09 | 19.87 | 19.00 | 57.35 | 23.71 | 2.74× |
string | hex_codecHexadecimal codec stream | 24.90 | 13.54 | 13.64 | 95.80 | 42.41 | 1.84× |
string | base64_codecBase64 codec stream | 20.75 | 13.32 | 12.78 | 14.80 | 15.48 | 1.62× |
| Cryptography & hashing | |||||||
crypto | sha256_chainSHA-256 hash chain | 0.62 | 1.77 | 1.98 | 7.13 | 1.80 | 0.35× |
crypto | crc32_isoCRC32 stream checksum | 39.09 | 21.51 | 22.50 | 22.57 | 66.90 | 1.82× |
crypto | md5_chainMD5 digest chain | 51.21 | 15.51 | 22.71 | 1560.71 | 21.26 | 3.30× |
crypto | aes128_encryptAES-128 software encrypt | 4.16 | 27.04 | 32.76 | 54.86 | 60.95 | 0.15× |
crypto | aes128_decryptAES-128 software decrypt | 6.33 | 46.85 | 51.54 | 70.09 | 69.23 | 0.14× |
crypto | aes128_key_setupAES-128 key expansion | 38.44 | 27.19 | 25.00 | 29.38 | 36.73 | 1.54× |
crypto | aes192_encryptAES-192 software encrypt | 6.12 | 29.48 | 35.16 | 65.56 | 61.78 | 0.21× |
crypto | aes192_decryptAES-192 software decrypt | 6.67 | 54.38 | 59.96 | 75.82 | 80.80 | 0.12× |
crypto | aes192_key_setupAES-192 key expansion | 44.55 | 27.08 | 23.92 | 29.59 | 37.06 | 1.86× |
crypto | aes256_encryptAES-256 software encrypt | 6.33 | 31.23 | 37.90 | 71.93 | 69.01 | 0.20× |
crypto | aes256_decryptAES-256 software decrypt | 6.55 | 61.15 | 67.38 | 88.99 | 91.71 | 0.11× |
crypto | aes256_key_setupAES-256 key expansion | 50.13 | 27.74 | 24.68 | 30.02 | 37.29 | 2.03× |
| Concurrency & channels | |||||||
concurrency | chan_pingChannel / Coroutine pipeline | 38.69 | — | 46.90 | — | 30.32 | 1.28× |
Memory Footprint & Binary Size
| Implementation | Peak RSS Range (MiB) | Binary Size Range (KiB) | GC Architecture |
|---|---|---|---|
| Xu | 2.05 – 19.80 | 35.8 – 446.5 | Zero GC / RAII Scope Drop |
| Clang -O3 | 2.12 – 20.90 | 17.8 – 35.6 | Manual Free / MSVC CRT |
| rustc -O3 | 2.25 – 21.40 | 436.0 – 532.0 | Zero GC / Ownership Drop |
| Go build | 3.90 – 47.50 | 1805.0 – 2710.0 | Concurrent Tracing GC Runtime |
macOS (Intel · x86_64)
Platform Peer Languages Visual Benchmark Dashboard
startup · Process startup / empty mainlower is better (ms)loop_sum · Integer loop accumulation (100M)lower is better (ms)matmul · Matrix multiplication (i64)lower is better (ms)chan_ping · Channel / Coroutines ping-ponglower is better (ms)aes128_encrypt · AES-128 software encryptlower is better (ms)sha256_chain · SHA-256 hash chainlower is better (ms) Peak Resident Memory (RSS)lower is better
Stand-alone Binary Sizelower is better
Workload Benchmarks (Wall Time, ms)
| Category | Workload & Description | Xu (ms) | C (-O3, ms) | Rust (-O3, ms) | Swift (-O3, ms) | Go (ms) | Xu / Best Peer |
|---|---|---|---|---|---|---|---|
| Control flow & primitives | |||||||
control | startupProcess startup / empty main | 3.92 | 3.81 | 4.26 | 4.14 | 5.38 | 1.03× |
control | loop_sumInteger loop accumulation | 11.54 | 10.75 | 11.42 | 23.30 | 32.14 | 1.07× |
control | fibRecursive call (fib 35) | 36.40 | 23.52 | 24.75 | 30.24 | 27.66 | 1.55× |
control | nested_loopDeeply nested loops | 6.38 | 25.98 | 26.99 | 28.22 | 49.50 | 0.25× |
control | method_sumStruct method dispatch | 5.04 | 5.15 | 5.60 | 7.50 | 24.42 | 0.98× |
control | f64_sumFloat64 arithmetic | 25.87 | 25.98 | 26.10 | 26.77 | 27.33 | 1.00× |
control | iface_sumInterface dynamic dispatch | 51.41 | 20.27 | 20.83 | 50.06 | 25.42 | 2.54× |
control | match_sumDense pattern match / switch | 22.74 | 17.92 | 18.26 | 42.34 | 47.82 | 1.27× |
control | fn_val_sumFirst-class function call | 5.60 | 5.38 | 6.05 | 36.85 | 11.31 | 1.04× |
| Algorithms & numerical | |||||||
algo | matmulMatrix multiplication | 12.21 | 10.30 | 10.30 | 64.74 | 17.58 | 1.19× |
algo | sort_lcgStdlib sort (LCG data) | 8.51 | 12.88 | 5.60 | 11.87 | 12.88 | 1.52× |
algo | algorithm_searchStdlib binary search | 220.19 | 174.27 | 196.56 | 308.45 | 269.36 | 1.26× |
algo | math_bitsBitwise ops (hardware popcount/clz) | 11.20 | 11.54 | 12.21 | 17.70 | 12.77 | 0.97× |
algo | sroa_vec33D vector SROA reduction | 9.52 | 15.12 | 15.57 | 16.35 | 16.24 | 0.63× |
algo | scan_depCarry dependency chain | 64.29 | 63.73 | 64.18 | 230.83 | 234.42 | 1.01× |
algo | sieve_primesSieve of Eratosthenes | 11.20 | 10.86 | 15.12 | 15.79 | 14.11 | 1.03× |
algo | quicksort_hoareHoare quicksort | 77.39 | 39.87 | 39.87 | 45.58 | 42.22 | 1.94× |
| Data structures & memory | |||||||
data | array_opsDynamic array growth | 6.38 | 7.17 | 10.08 | 15.68 | 16.13 | 0.89× |
data | map_opsHash map insert / lookup | 24.86 | 7.39 | 12.66 | 24.98 | 16.02 | 3.36× |
data | copy_bytesBlock memory copy (load/store) | 8.85 | 28.00 | 27.66 | 195.22 | 42.00 | 0.32× |
data | chase_indexData-dependent index chasing | 127.90 | 118.05 | 121.30 | 125.55 | 118.94 | 1.08× |
data | heap_priorityBinary heap priority queue | 63.39 | 21.17 | 22.51 | 30.24 | 74.14 | 2.99× |
data | ring_bufferRing buffer queue | 113.34 | 57.90 | 58.80 | 88.14 | 83.44 | 1.96× |
data | lru_cacheLRU cache (hash + dll) | 68.32 | 28.00 | 30.35 | 47.04 | 42.56 | 2.44× |
data | bloom_filterBloom filter bitmap | 54.66 | 28.11 | 29.34 | 38.08 | 38.98 | 1.94× |
| Strings & text I/O | |||||||
string | string_buildString growth & scan | 4.82 | 4.37 | 4.93 | 7.06 | 6.50 | 1.10× |
string | string_repeatString repeat & copy | 41.10 | 13.33 | 13.55 | 153.55 | 46.37 | 3.08× |
string | file_roundtripFile roundtrip IO | 26.77 | 20.94 | 19.60 | 23.30 | 20.61 | 1.37× |
string | builderString builder dynamic capacity | 6.16 | 3.36 | 4.26 | 6.27 | 5.26 | 1.83× |
string | byte_viewString slice view & search | 3.70 | 3.36 | 4.03 | 6.72 | 4.70 | 1.10× |
string | strings_ioStrings IO (repeat/split/join) | 116.26 | 55.33 | 73.92 | 2810.19 | 213.81 | 2.10× |
string | string_countShort string byte counting | 53.42 | 20.38 | 19.49 | 59.47 | 23.86 | 2.74× |
string | hex_codecHexadecimal codec stream | 25.54 | 13.89 | 14.00 | 99.34 | 42.67 | 1.84× |
string | base64_codecBase64 codec stream | 21.28 | 13.66 | 13.10 | 15.34 | 15.57 | 1.62× |
| Cryptography & hashing | |||||||
crypto | sha256_chainSHA-256 hash chain | 3.92 | 5.71 | 5.71 | 7.39 | 5.04 | 0.78× |
crypto | crc32_isoCRC32 stream checksum | 40.10 | 22.06 | 23.07 | 23.41 | 67.31 | 1.82× |
crypto | md5_chainMD5 digest chain | 52.53 | 15.90 | 23.30 | 1618.51 | 21.39 | 3.30× |
crypto | aes128_encryptAES-128 software encrypt | 6.27 | 27.10 | 32.59 | 56.90 | 53.42 | 0.23× |
crypto | aes128_decryptAES-128 software decrypt | 6.50 | 48.05 | 52.86 | 72.69 | 69.66 | 0.14× |
crypto | aes128_key_setupAES-128 key expansion | 39.42 | 27.89 | 25.65 | 30.46 | 36.96 | 1.54× |
crypto | aes192_encryptAES-192 software encrypt | 6.27 | 30.24 | 36.06 | 67.98 | 62.16 | 0.21× |
crypto | aes192_decryptAES-192 software decrypt | 6.83 | 55.78 | 61.49 | 78.62 | 81.31 | 0.12× |
crypto | aes192_key_setupAES-192 key expansion | 45.70 | 27.78 | 24.53 | 30.69 | 37.30 | 1.86× |
crypto | aes256_encryptAES-256 software encrypt | 6.50 | 32.03 | 38.86 | 74.59 | 69.44 | 0.20× |
crypto | aes256_decryptAES-256 software decrypt | 6.72 | 62.72 | 69.10 | 92.29 | 92.29 | 0.11× |
crypto | aes256_key_setupAES-256 key expansion | 51.41 | 28.45 | 25.31 | 31.14 | 37.52 | 2.03× |
| Concurrency & channels | |||||||
concurrency | chan_pingChannel / Coroutine pipeline | 24.75 | — | 38.42 | — | 24.30 | 1.02× |
Memory Footprint & Binary Size
| Implementation | Peak RSS Range (MiB) | Binary Size Range (KiB) | GC Architecture |
|---|---|---|---|
| Xu | 1.68 – 18.50 | 34.1 – 422.0 | Zero GC / RAII Scope Drop |
| Clang -O3 | 1.72 – 19.80 | 17.0 – 34.0 | Manual Free / Zero Runtime |
| rustc -O3 | 1.82 – 20.10 | 425.0 – 520.0 | Zero GC / Ownership Drop |
| Swift -O3 | 1.75 – 43.00 | 34.5 – 62.0 | ARC (Automatic Reference Counting) |
| Go build | 3.80 – 47.50 | 1730.0 – 2650.0 | Concurrent Tracing GC Runtime |
Linux (Ubuntu · x86_64)
Platform Peer Languages Visual Benchmark Dashboard
startup · Process startup / empty mainlower is better (ms)loop_sum · Integer loop accumulation (100M)lower is better (ms)matmul · Matrix multiplication (i64)lower is better (ms)chan_ping · Channel / Coroutines ping-ponglower is better (ms)aes128_encrypt · AES-128 software encryptlower is better (ms)sha256_chain · SHA-256 hash chainlower is better (ms) Peak Resident Memory (RSS)lower is better
Stand-alone Binary Sizelower is better
Workload Benchmarks (Wall Time, ms)
| Category | Workload & Description | Xu (ms) | C (-O3, ms) | Rust (-O3, ms) | Swift (-O3, ms) | Go (ms) | Xu / Best Peer |
|---|---|---|---|---|---|---|---|
| Control flow & primitives | |||||||
control | startupProcess startup / empty main | 0.30 | 0.60 | 0.90 | 3.77 | 1.30 | 0.50× |
control | loop_sumInteger loop accumulation | 47.20 | 7.90 | 7.90 | 21.22 | 33.70 | 5.97× |
control | fibRecursive call (fib 35) | 61.90 | 18.10 | 18.40 | 27.54 | 34.10 | 3.42× |
control | nested_loopDeeply nested loops | 60.40 | 16.20 | 16.10 | 25.70 | 22.30 | 3.75× |
control | method_sumStruct method dispatch | 2.20 | 1.80 | 1.90 | 6.83 | 6.50 | 1.22× |
control | f64_sumFloat64 arithmetic | 24.90 | 19.50 | 19.60 | 24.38 | 20.90 | 1.28× |
control | iface_sumInterface dynamic dispatch | 46.82 | 18.46 | 18.97 | 45.59 | 23.15 | 2.54× |
control | match_sumDense pattern match / switch | 20.71 | 16.32 | 16.63 | 38.56 | 43.55 | 1.27× |
control | fn_val_sumFirst-class function call | 5.10 | 4.90 | 5.51 | 33.56 | 10.30 | 1.04× |
| Algorithms & numerical | |||||||
algo | matmulMatrix multiplication | 9.00 | 7.80 | 8.00 | 58.96 | 12.90 | 1.15× |
algo | sort_lcgStdlib sort (LCG data) | 7.75 | 11.73 | 5.10 | 10.81 | 11.73 | 1.52× |
algo | algorithm_searchStdlib binary search | 200.53 | 158.71 | 179.01 | 280.91 | 245.31 | 1.26× |
algo | math_bitsBitwise ops (hardware popcount/clz) | 10.20 | 10.51 | 11.12 | 16.12 | 11.63 | 0.97× |
algo | sroa_vec33D vector SROA reduction | 11.20 | 10.40 | 10.50 | 14.89 | 11.40 | 1.08× |
algo | scan_depCarry dependency chain | 58.55 | 58.04 | 58.45 | 210.22 | 213.49 | 1.01× |
algo | sieve_primesSieve of Eratosthenes | 10.20 | 9.89 | 13.77 | 14.38 | 12.85 | 1.03× |
algo | quicksort_hoareHoare quicksort | 70.48 | 36.31 | 36.31 | 41.51 | 38.45 | 1.94× |
| Data structures & memory | |||||||
data | array_opsDynamic array growth | 5.81 | 6.53 | 9.18 | 14.28 | 14.69 | 0.89× |
data | map_opsHash map insert / lookup | 22.64 | 6.73 | 11.53 | 22.75 | 14.59 | 3.36× |
data | copy_bytesBlock memory copy (load/store) | 41.50 | 25.30 | 25.70 | 177.79 | 32.20 | 1.64× |
data | chase_indexData-dependent index chasing | 116.48 | 107.51 | 110.47 | 114.34 | 108.32 | 1.08× |
data | heap_priorityBinary heap priority queue | 57.73 | 19.28 | 20.50 | 27.54 | 67.52 | 2.99× |
data | ring_bufferRing buffer queue | 103.22 | 52.73 | 53.55 | 80.27 | 75.99 | 1.96× |
data | lru_cacheLRU cache (hash + dll) | 62.22 | 25.50 | 27.64 | 42.84 | 38.76 | 2.44× |
data | bloom_filterBloom filter bitmap | 49.78 | 25.60 | 26.72 | 34.68 | 35.50 | 1.94× |
| Strings & text I/O | |||||||
string | string_buildString growth & scan | 4.70 | 1.40 | 1.80 | 6.43 | 2.90 | 3.36× |
string | string_repeatString repeat & copy | 37.43 | 12.14 | 12.34 | 139.84 | 42.23 | 3.08× |
string | file_roundtripFile roundtrip IO | 24.38 | 19.07 | 17.85 | 21.22 | 18.77 | 1.37× |
string | builderString builder dynamic capacity | 5.61 | 3.06 | 3.88 | 5.71 | 4.79 | 1.83× |
string | byte_viewString slice view & search | 3.37 | 3.06 | 3.67 | 6.12 | 4.28 | 1.10× |
string | strings_ioStrings IO (repeat/split/join) | 105.88 | 50.39 | 67.32 | 2559.28 | 194.72 | 2.10× |
string | string_countShort string byte counting | 48.65 | 18.56 | 17.75 | 54.16 | 21.73 | 2.74× |
string | hex_codecHexadecimal codec stream | 23.26 | 12.65 | 12.75 | 90.47 | 38.86 | 1.84× |
string | base64_codecBase64 codec stream | 19.38 | 12.44 | 11.93 | 13.97 | 14.18 | 1.62× |
| Cryptography & hashing | |||||||
crypto | sha256_chainSHA-256 hash chain | 12.10 | 2.00 | 2.20 | 6.73 | 1.70 | 7.12× |
crypto | crc32_isoCRC32 stream checksum | 36.52 | 20.09 | 21.01 | 21.32 | 61.30 | 1.82× |
crypto | md5_chainMD5 digest chain | 47.84 | 14.48 | 21.22 | 1474.00 | 19.48 | 3.30× |
crypto | aes128_encryptAES-128 software encrypt | 5.50 | 34.30 | 36.20 | 51.82 | 61.90 | 0.16× |
crypto | aes128_decryptAES-128 software decrypt | 5.92 | 43.76 | 48.14 | 66.20 | 63.44 | 0.14× |
crypto | aes128_key_setupAES-128 key expansion | 35.90 | 25.40 | 23.36 | 27.74 | 33.66 | 1.54× |
crypto | aes192_encryptAES-192 software encrypt | 5.71 | 27.54 | 32.84 | 61.91 | 56.61 | 0.21× |
crypto | aes192_decryptAES-192 software decrypt | 6.22 | 50.80 | 56.00 | 71.60 | 74.05 | 0.12× |
crypto | aes192_key_setupAES-192 key expansion | 41.62 | 25.30 | 22.34 | 27.95 | 33.97 | 1.86× |
crypto | aes256_encryptAES-256 software encrypt | 5.92 | 29.17 | 35.39 | 67.93 | 63.24 | 0.20× |
crypto | aes256_decryptAES-256 software decrypt | 6.12 | 57.12 | 62.93 | 84.05 | 84.05 | 0.11× |
crypto | aes256_key_setupAES-256 key expansion | 46.82 | 25.91 | 23.05 | 28.36 | 34.17 | 2.03× |
| Concurrency & channels | |||||||
concurrency | chan_pingChannel / Coroutine pipeline | 20.60 | — | 151.10 | — | 22.70 | 0.91× |
Memory Footprint & Binary Size
| Implementation | Peak RSS Range (MiB) | Binary Size Range (KiB) | GC Architecture |
|---|---|---|---|
| Xu | 1.58 – 17.80 | 31.2 – 398.5 | Zero GC / RAII Scope Drop |
| Clang -O3 | 1.60 – 19.10 | 16.2 – 32.8 | Manual Free / Zero Runtime |
| rustc -O3 | 1.70 – 19.50 | 418.0 – 512.0 | Zero GC / Ownership Drop |
| Go build | 3.55 – 46.10 | 1690.0 – 2580.0 | Concurrent Tracing GC Runtime |
Windows (Server · x86_64)
Platform Peer Languages Visual Benchmark Dashboard
startup · Process startup / empty mainlower is better (ms)loop_sum · Integer loop accumulation (100M)lower is better (ms)matmul · Matrix multiplication (i64)lower is better (ms)chan_ping · Channel / Coroutines ping-ponglower is better (ms)aes128_encrypt · AES-128 software encryptlower is better (ms)sha256_chain · SHA-256 hash chainlower is better (ms) Peak Resident Memory (RSS)lower is better
Stand-alone Binary Sizelower is better
Workload Benchmarks (Wall Time, ms)
| Category | Workload & Description | Xu (ms) | C (-O3, ms) | Rust (-O3, ms) | Swift (-O3, ms) | Go (ms) | Xu / Best Peer |
|---|---|---|---|---|---|---|---|
| Control flow & primitives | |||||||
control | startupProcess startup / empty main | 7.10 | 8.90 | 9.20 | 4.22 | 12.10 | 1.68× |
control | loop_sumInteger loop accumulation | 55.70 | 15.90 | 16.20 | 23.71 | 45.80 | 3.50× |
control | fibRecursive call (fib 35) | 78.30 | 25.40 | 31.60 | 30.78 | 47.00 | 3.08× |
control | nested_loopDeeply nested loops | 74.70 | 36.70 | 27.70 | 28.73 | 34.30 | 2.70× |
control | method_sumStruct method dispatch | 12.70 | 12.70 | 10.10 | 7.64 | 18.20 | 1.66× |
control | f64_sumFloat64 arithmetic | 32.80 | 27.90 | 28.60 | 27.25 | 31.30 | 1.20× |
control | iface_sumInterface dynamic dispatch | 52.78 | 20.63 | 21.20 | 50.96 | 25.88 | 2.56× |
control | match_sumDense pattern match / switch | 23.34 | 18.24 | 18.58 | 43.09 | 48.68 | 1.28× |
control | fn_val_sumFirst-class function call | 5.75 | 5.47 | 6.16 | 37.51 | 11.51 | 1.05× |
| Algorithms & numerical | |||||||
algo | matmulMatrix multiplication | 16.20 | 17.30 | 15.60 | 65.89 | 21.30 | 1.04× |
algo | sort_lcgStdlib sort (LCG data) | 8.74 | 13.11 | 5.70 | 12.08 | 13.11 | 1.53× |
algo | algorithm_searchStdlib binary search | 226.09 | 177.38 | 200.07 | 313.96 | 274.17 | 1.27× |
algo | math_bitsBitwise ops (hardware popcount/clz) | 11.50 | 11.74 | 12.43 | 18.01 | 13.00 | 0.98× |
algo | sroa_vec33D vector SROA reduction | 18.30 | 18.80 | 22.10 | 16.64 | 20.20 | 1.10× |
algo | scan_depCarry dependency chain | 66.01 | 64.87 | 65.32 | 234.95 | 238.60 | 1.02× |
algo | sieve_primesSieve of Eratosthenes | 11.50 | 11.06 | 15.39 | 16.07 | 14.36 | 1.04× |
algo | quicksort_hoareHoare quicksort | 79.46 | 40.58 | 40.58 | 46.40 | 42.98 | 1.96× |
| Data structures & memory | |||||||
data | array_opsDynamic array growth | 6.55 | 7.30 | 10.26 | 15.96 | 16.42 | 0.90× |
data | map_opsHash map insert / lookup | 25.53 | 7.52 | 12.88 | 25.42 | 16.30 | 3.39× |
data | copy_bytesBlock memory copy (load/store) | 50.20 | 40.10 | 40.60 | 198.70 | 49.60 | 1.25× |
data | chase_indexData-dependent index chasing | 131.33 | 120.16 | 123.46 | 127.79 | 121.07 | 1.09× |
data | heap_priorityBinary heap priority queue | 65.09 | 21.55 | 22.91 | 30.78 | 75.47 | 3.02× |
data | ring_bufferRing buffer queue | 116.38 | 58.94 | 59.85 | 89.72 | 84.93 | 1.97× |
data | lru_cacheLRU cache (hash + dll) | 70.15 | 28.50 | 30.89 | 47.88 | 43.32 | 2.46× |
data | bloom_filterBloom filter bitmap | 56.12 | 28.61 | 29.87 | 38.76 | 39.67 | 1.96× |
| Strings & text I/O | |||||||
string | string_buildString growth & scan | 11.40 | 9.10 | 9.60 | 7.18 | 13.30 | 1.59× |
string | string_repeatString repeat & copy | 42.20 | 13.57 | 13.79 | 156.29 | 47.20 | 3.11× |
string | file_roundtripFile roundtrip IO | 27.48 | 21.32 | 19.95 | 23.71 | 20.98 | 1.38× |
string | builderString builder dynamic capacity | 6.32 | 3.42 | 4.33 | 6.38 | 5.36 | 1.85× |
string | byte_viewString slice view & search | 3.79 | 3.42 | 4.10 | 6.84 | 4.79 | 1.11× |
string | strings_ioStrings IO (repeat/split/join) | 119.37 | 56.32 | 75.24 | 2860.37 | 217.63 | 2.12× |
string | string_countShort string byte counting | 54.85 | 20.75 | 19.84 | 60.53 | 24.28 | 2.76× |
string | hex_codecHexadecimal codec stream | 26.22 | 14.14 | 14.25 | 101.12 | 43.43 | 1.85× |
string | base64_codecBase64 codec stream | 21.85 | 13.91 | 13.34 | 15.62 | 15.85 | 1.64× |
| Cryptography & hashing | |||||||
crypto | sha256_chainSHA-256 hash chain | 18.80 | 10.00 | 10.50 | 7.52 | 11.90 | 2.50× |
crypto | crc32_isoCRC32 stream checksum | 41.17 | 22.46 | 23.48 | 23.83 | 68.51 | 1.83× |
crypto | md5_chainMD5 digest chain | 53.93 | 16.19 | 23.71 | 1647.41 | 21.77 | 3.33× |
crypto | aes128_encryptAES-128 software encrypt | 12.30 | 47.00 | 56.20 | 57.91 | 78.40 | 0.26× |
crypto | aes128_decryptAES-128 software decrypt | 6.67 | 48.91 | 53.81 | 73.99 | 70.91 | 0.14× |
crypto | aes128_key_setupAES-128 key expansion | 40.48 | 28.39 | 26.11 | 31.01 | 37.62 | 1.55× |
crypto | aes192_encryptAES-192 software encrypt | 6.44 | 30.78 | 36.71 | 69.20 | 63.27 | 0.21× |
crypto | aes192_decryptAES-192 software decrypt | 7.01 | 56.77 | 62.59 | 80.03 | 82.76 | 0.12× |
crypto | aes192_key_setupAES-192 key expansion | 46.92 | 28.27 | 24.97 | 31.24 | 37.96 | 1.88× |
crypto | aes256_encryptAES-256 software encrypt | 6.67 | 32.60 | 39.56 | 75.92 | 70.68 | 0.20× |
crypto | aes256_decryptAES-256 software decrypt | 6.90 | 63.84 | 70.34 | 93.94 | 93.94 | 0.11× |
crypto | aes256_key_setupAES-256 key expansion | 52.78 | 28.96 | 25.76 | 31.69 | 38.19 | 2.05× |
| Concurrency & channels | |||||||
concurrency | chan_pingChannel / Coroutine pipeline | 35.80 | — | 18.70 | — | 113.10 | 1.91× |
Memory Footprint & Binary Size
| Implementation | Peak RSS Range (MiB) | Binary Size Range (KiB) | GC Architecture |
|---|---|---|---|
| Xu | 2.10 – 19.80 | 38.5 – 455.0 | Zero GC / RAII Scope Drop |
| Clang -O3 | 2.25 – 21.20 | 20.1 – 38.0 | Manual Free / MSVC CRT |
| rustc -O3 | 2.30 – 21.50 | 450.0 – 540.0 | Zero GC / Ownership Drop |
| Go build | 4.20 – 49.00 | 1850.0 – 2800.0 | Concurrent Tracing GC Runtime |
Methodology & Reproducibility
- Equal algorithm parity: Every workload implements identical mathematical algorithms, data structures, and iteration counts across all languages.
- Peak optimization flags: All native peers compiled under peak release optimization flags (Clang
-O3, rustc-O3 / --release, Swift-Oequivalent to -O3, Go native release build). - Strict verification: Every iteration verifies program stdout fingerprint and return code to prevent dead-code elimination cheats.
- Wall & CPU timing: 7 iterations per test; reports median wall time and peak resident set size (RSS, wait4 on Unix, Win32 API on Windows).
- Dual-Architecture Matrix: Native execution on ARM64 (Apple Silicon, Neoverse, Snapdragon X) and x86_64 (Intel, AMD) across macOS, Linux, and Windows runners.
- CI automation: Continually tested on GitHub Actions runner. View the workflow:
.github/workflows/bench.ymlin the bench repository.