Performance benchmarks for daslang (formerly daScript).
This repository contains cross-language benchmark suites comparing daslang against Lua, LuaJIT, Luau, JavaScript (QuickJS), Quirrel, and C#.
Benchmark Snapshot
Per-platform captures. Lower is better. The fastest result in each row is in bold. - means no value for that runtime on that benchmark.
macOS — Apple M1 Max
Platform information:
- Captured from
profile_results_darwin.jsonon Wed May 13 02:48:38 2026 - Toolchain: AppleClang 21.0.0.21000101, daslang 0.6.2, LLVM 22.1.5
- Runtimes: Lua 5.5.0, LuaJIT 2.1.1774896198, Luau 0.720, Mono 6.14.1 (tarball Tue Apr 29 17:43:02 UTC 2025), .NET 10.0.300, QuickJS 2025-09-13, Quirrel 4.20.0
Interpreted
| Test | DAS interpreter | Luau | Lua | LuaJIT -joff | Quirrel | QuickJS | Mono --interpreter |
|---|---|---|---|---|---|---|---|
| sha256 | 0.092860s | 0.375728s | 2.224072s | 0.253371s | 0.736345s | 0.928000s | 0.360820s |
| dictionary | 0.016658s | 0.035719s | 0.053598s | 0.023007s | 0.074822s | 0.053000s | 0.354948s |
| n-bodies | 0.155752s | 0.526935s | 0.683196s | 0.520397s | 1.093160s | 1.379000s | 0.432292s |
| spectral norm | 0.183585s | 0.172225s | 0.312885s | 0.346714s | 0.659841s | 0.763000s | 0.160881s |
| native loop | 0.025643s | - | - | - | - | - | 1.019868s |
| mandelbrot | 0.002057s | 0.035791s | 0.077136s | 0.045929s | 0.006746s | 0.008000s | 0.009510s |
| exp loop | 0.009897s | 0.009619s | 0.023254s | 0.015689s | 0.041328s | 0.037000s | 0.025938s |
| string2float | 0.017470s | 0.022679s | 0.066204s | 0.164071s | 0.049809s | 0.125000s | 1.368532s |
| particles kinematics | 0.008823s | 0.278972s | 0.436534s | 0.261112s | 0.254812s | 0.457000s | 0.244268s |
| queen | 0.000935s | 0.002560s | 0.001446s | 0.002233s | 0.002381s | 0.003000s | 0.004897s |
| primes loop | 0.022345s | 0.067061s | 0.076428s | 0.197245s | 0.150416s | 0.140000s | 0.058153s |
| sort | 0.023536s | 0.041823s | 0.058396s | 0.055967s | 0.127205s | 0.043000s | 0.059335s |
| tree | 1.659017s | 1.746316s | 2.020678s | 1.859450s | 5.427960s | 9.976000s | 1.089033s |
| fibonacci loop | 0.033419s | 0.089567s | 0.047790s | 0.079696s | 0.063521s | 0.147000s | 0.032510s |
| float2string | 0.053663s | 0.055475s | 0.417758s | 0.154445s | 0.167451s | 0.272000s | 1.885519s |
| fibonacci recursive | 0.045765s | 0.078675s | 0.068694s | 0.055189s | 0.158539s | 0.108000s | 0.046331s |
AOT or JIT
| Test | DAS AOT | DAS JIT | C++ | Luau --codegen | LuaJIT | Mono | .NET |
|---|---|---|---|---|---|---|---|
| sha256 | 0.006149s | 0.004512s | 0.005108s | 0.332236s | 0.015384s | 0.032626s | 0.016494s |
| dictionary | 0.012154s | 0.011637s | 0.031887s | 0.024466s | 0.007986s | 0.092023s | 0.035208s |
| n-bodies | 0.022459s | 0.013847s | 0.024785s | 0.242705s | 0.052140s | 0.083842s | 0.027049s |
| spectral norm | 0.008844s | 0.003160s | 0.009106s | 0.042218s | 0.012240s | 0.034274s | 0.009651s |
| native loop | 0.012605s | 0.006392s | - | - | - | 0.080545s | 0.012768s |
| mandelbrot | 0.000564s | 0.000459s | 0.000581s | 0.023783s | 0.005574s | 0.001899s | 0.000560s |
| exp loop | 0.004054s | 0.001583s | 0.001711s | 0.005177s | 0.002407s | 0.006947s | 0.002592s |
| string2float | 0.014813s | 0.014481s | 0.015896s | 0.019589s | 0.147690s | 0.118201s | 0.038627s |
| particles kinematics | 0.003401s | 0.003400s | 0.003360s | 0.146696s | 0.044470s | 0.047529s | 0.005650s |
| queen | 0.000096s | 0.000055s | 0.000041s | 0.000746s | 0.000199s | 0.000618s | 0.000731s |
| primes loop | 0.006289s | 0.006960s | 0.007023s | 0.039414s | 0.016546s | 0.025704s | 0.008502s |
| sort | 0.004471s | 0.005609s | 0.004428s | 0.036842s | 0.050098s | 0.010094s | 0.009006s |
| tree | 0.143418s | 0.157008s | 0.142762s | 1.111824s | 0.740921s | 0.205640s | 0.225222s |
| fibonacci loop | 0.002055s | 0.002062s | 0.002056s | 0.023567s | 0.010315s | 0.002060s | 0.004418s |
| float2string | 0.076211s | 0.046425s | 0.152026s | 0.052848s | 0.144027s | 0.412196s | 0.068169s |
| fibonacci recursive | 0.004025s | 0.003625s | 0.003988s | 0.036798s | 0.006668s | 0.005879s | 0.004517s |
Windows — AMD Ryzen Threadripper 3990X
Platform information:
- Captured from
profile_results_windows.jsonon Thu May 21 23:32:14 2026 - Toolchain: MSVC 19.44.35213.0, daslang 0.6.2, LLVM 22.1.5
- Runtimes: Lua 5.5.0, LuaJIT 2.1.1774896198, Luau 0.720, Mono 6.12.0 (Visual Studio built mono), .NET 10.0.300, QuickJS 2025-09-13-2, Quirrel 4.20.0
Interpreted
| Test | DAS interpreter | Luau | Lua | LuaJIT -joff | Quirrel | QuickJS | Mono --interpreter |
|---|---|---|---|---|---|---|---|
| sha256 | 0.129828s | 0.689463s | 5.358000s | 0.274000s | 1.212000s | 1.760000s | 0.922089s |
| dictionary | 0.041710s | 0.048607s | 0.070000s | 0.020000s | 0.096000s | 0.117000s | 1.389088s |
| n-bodies | 0.271717s | 0.718266s | 1.342000s | 0.566000s | 2.167000s | 2.486000s | 1.170949s |
| mandelbrot | 0.004128s | 0.056636s | 0.158000s | 0.059000s | 0.009000s | 0.012000s | 0.026202s |
| spectral norm | 0.255477s | 0.238623s | 0.544000s | 0.291000s | 1.135000s | 1.212000s | 0.455888s |
| native loop | 0.059911s | - | - | - | - | - | 1.868740s |
| exp loop | 0.016043s | 0.019307s | 0.055000s | 0.019000s | 0.081000s | 0.102000s | 0.385876s |
| string2float | 0.035609s | 0.129264s | 0.216000s | 0.128000s | 0.141000s | 0.229000s | 5.400243s |
| particles kinematics | 0.015203s | 0.399296s | 1.594000s | 0.308000s | 1.034000s | 1.540000s | 0.669419s |
| queen | 0.001531s | 0.001605s | 0.002000s | 0.001000s | 0.003000s | 0.005000s | 0.012880s |
| fibonacci loop | 0.035063s | 0.060486s | 0.075000s | 0.045000s | 0.079000s | 0.263000s | 0.140542s |
| primes loop | 0.049816s | 0.094500s | 0.088000s | 0.069000s | 0.236000s | 0.217000s | 0.158501s |
| sort | 0.020373s | 0.057909s | 0.105000s | 0.073000s | 0.252000s | 0.072000s | 0.291007s |
| tree | 2.065271s | 1.788859s | 3.028000s | 1.531000s | 8.654000s | 16.062000s | 1.939324s |
| float2string | 0.110288s | 0.077653s | 0.777000s | 0.197000s | 0.310000s | 0.540000s | 5.606546s |
| fibonacci recursive | 0.037387s | 0.086670s | 0.095000s | 0.061000s | 0.213000s | 0.211000s | 0.113692s |
AOT or JIT
| Test | DAS AOT | DAS JIT | C++ | Luau --codegen | LuaJIT | Mono | .NET |
|---|---|---|---|---|---|---|---|
| sha256 | 0.020471s | 0.004600s | 0.004362s | 0.549106s | 0.024000s | 0.046988s | 0.017283s |
| dictionary | 0.010678s | 0.011970s | 0.053369s | 0.042399s | 0.014000s | 0.106316s | 0.067962s |
| n-bodies | 0.067607s | 0.024233s | 0.039247s | 0.222957s | 0.082000s | 0.079346s | 0.040454s |
| mandelbrot | 0.000524s | 0.000470s | 0.000604s | 0.040889s | 0.008000s | 0.004681s | 0.000605s |
| spectral norm | 0.012685s | 0.012400s | 0.012491s | 0.055988s | 0.014000s | 0.027319s | 0.013291s |
| native loop | 0.014640s | 0.010699s | - | - | - | 0.135522s | 0.077220s |
| exp loop | 0.008505s | 0.003108s | 0.003357s | 0.007762s | 0.006000s | 0.011171s | 0.006345s |
| string2float | 0.030153s | 0.030798s | 0.097750s | 0.117100s | 0.110000s | 0.167461s | 0.055313s |
| particles kinematics | 0.003524s | 0.004590s | 0.006899s | 0.203969s | 0.188000s | 0.093309s | 0.007802s |
| queen | 0.000140s | 0.000114s | 0.000120s | 0.000762s | 0.000000s | 0.000777s | 0.000959s |
| fibonacci loop | 0.002748s | 0.001620s | 0.001626s | 0.030958s | 0.004000s | 0.002272s | 0.001957s |
| primes loop | 0.013699s | 0.013642s | 0.039177s | 0.033763s | 0.014000s | 0.039134s | 0.039404s |
| sort | - | 0.005125s | 0.005815s | 0.054823s | 0.078000s | 0.011173s | 0.013657s |
| tree | 0.170636s | 0.165016s | 0.184376s | 1.495365s | 1.079000s | 0.259549s | 0.220237s |
| float2string | 0.094225s | 0.095917s | 0.295398s | 0.070217s | 0.174000s | 0.405035s | 0.093357s |
| fibonacci recursive | 0.007429s | 0.004289s | 0.005474s | 0.061901s | 0.012000s | 0.009210s | 0.007482s |
Related
- daslang — the daslang compiler and runtime