Performance

minc compared with clang and MSVC on the box3d benchmark suite.

box3d is a 3D rigid-body physics engine: fifty source files of mostly float math and SIMD C, with a benchmark suite of eleven scenes. The C compilers build the upstream source. The minc compiler builds box3d-minc, generated from the same source by a C-minc-transpiler written in minc. All builds emit similar 128-bit SIMD code.

Wall-clock milliseconds per scene, single-threaded, lower is better.

Windows x64

scenemincclangMSVCvs clangvs MSVC
many_pyramids1,841.41,940.02,056.20.94×0.89×
large_pyramid1,793.21,903.11,987.50.95×0.91×
joint_grid1,286.71,160.11,448.21.11×0.89×
washer24,566.321,920.323,352.81.13×1.06×
rain2,231.01,970.42,121.61.13×1.05×
large_world8.67.58.01.16×1.08×
junkyard18,043.015,122.416,439.41.19×1.10×
convex_pile17,283.013,181.713,809.41.31×1.25×
trees100240.5183.2213.61.32×1.13×
trees25940.5676.5840.91.39×1.12×
trees50382.6273.1340.31.40×1.12×
geometric mean1.18×1.05×

Across the suite minc is 1.18× clang and 1.05× MSVC. It matches or beats clang on the stacking scenes, beats MSVC on three of the eleven, and trails most on the mesh-collision (trees) scenes.

With the solver spread across worker threads the three compilers scale together. Scaling is against the same compiler's own single-worker total.

workersminc totalclang totalMSVC totalvs clangvs MSVCminc scalingclang scalingMSVC scaling
168,61758,33862,6181.176×1.049×
236,30831,26733,1081.168×1.054×1.89×1.87×1.89×
420,48917,74218,6821.167×1.060×3.35×3.29×3.35×
814,56013,24613,6271.132×1.046×4.71×4.40×4.60×

The vs columns are geomeans over the eleven per-scene paired ratios at that worker count. Scaling flattens the same way for all three compilers: box3d's step has serial phases, so the ceiling is the engine. The gap narrows slightly at eight workers.

macOS arm64

The same eleven scenes on an Apple M1, against Apple clang.

scenemincclangvs clang
many_pyramids2,176.22,077.31.05×
large_pyramid2,005.11,872.01.07×
washer26,143.724,268.51.08×
junkyard16,886.714,904.51.13×
large_world7.46.31.18×
rain2,510.42,063.61.22×
trees100244.1198.41.23×
joint_grid1,255.2991.81.26×
convex_pile18,916.614,741.01.28×
trees50389.2290.51.34×
trees25978.5699.71.40×
geometric mean1.20×

minc is 1.20× Apple clang, matching the Windows figure, and the scene ordering is also similar.

At 2, 4 and 8 workers the ratio stays within 0.02× of the single-worker figure, and minc's thread pool scales like clang's. Totals sum all eleven scenes; scaling is against the same compiler's own single-worker total.

workersminc totalclang totalratiogeomeanminc scalingclang scaling
171,51362,1141.15×1.198×
238,29133,4571.14×1.188×1.87×1.86×
421,87919,1301.14×1.162×3.27×3.25×
820,31218,0101.13×1.140×3.52×3.45×

Eight workers adds little over four: the M1 has four performance cores and four efficiency cores. The 8-worker row is also the noisiest, with 11.7% spread at the 90th percentile against about 1% for the others.

WebAssembly

The same eleven scenes compiled to WebAssembly and run in Node on the Windows machine: minc builds the published modules with --target wasm, emcc builds the upstream C from the same box3d pin. Both emit 128-bit wasm SIMD. Single worker.

scenemincemccvs emcc
many_pyramids2,907.12,683.81.08×
large_pyramid2,805.32,521.71.11×
joint_grid1,997.31,674.91.20×
large_world15.212.21.25×
rain3,637.42,915.41.26×
junkyard29,297.723,100.31.27×
washer40,476.730,718.21.32×
convex_pile26,881.719,954.21.35×
trees251,345.3899.71.50×
trees100356.7238.21.50×
trees50571.7367.81.55×
geometric mean1.30×

minc is 1.30× emcc on wasm, with the same shape as the native tables: stacking scenes closest, mesh collision the tail. emcc goes through LLVM, so this measures minc's wasm backend against the same optimizer clang uses natively.

Test setup

Windows machineAMD Ryzen 9 5900X, 12 cores / 24 threads, 32 GB, Windows 11, stock power plan, idle
macOS machineApple M1, 16 GB, macOS 14.8.1, AC power, idle
minc0.9.12, default flags (bounds checking on)
MSVC19.44.35227 (Visual Studio 2022, 17.14.32), /O2 /arch:AVX2 /fp:contract /std:c17 /DNDEBUG
clang-cl19.1.5, target x86_64-pc-windows-msvc (bundled with Visual Studio 2022), /O2 /arch:AVX2 /std:c17 /DNDEBUG
Apple clang16.0.0 (clang-1600.0.26.6, Xcode), -O2 -DNDEBUG
emcc4.0.19, -O2 -msimd128 -msse2 -std=gnu17 -DNDEBUG, run in Node v22.16.0
box3dupstream 2386141. minc builds the published box3d-minc module; the C compilers build the upstream sources directly
Date2026-08-17 (Windows, wasm), 2026-08-16 (macOS)

Notes

Questions, or a workload where minc does noticeably worse? Open an issue.