Performance benchmarks for daslang (formerly daScript).
This repository contains cross-language benchmark suites comparing daslang against Lua, LuaJIT, Luau, JavaScript (QuickJS), Quirrel, C#, and Zig.
Per-platform captures. A cell is the median of five samples, each its own process; a sample runs the kernel as many times as fit a 0.5 s budget and reports the per-run time, and ± is half the sample range as a share of the median. Lower is better. The fastest result in each row is in bold. - means no value for that runtime on that benchmark. The Startup table is hello world in every language on the boards: the wall time of one launch the way that lane's kernels are launched (median of ten after a warm one), and the size of the artifact the lane runs where it built one - a das exe links the daslang runtime library dynamically, a zig exe is static.
Platform information:
Captured from profile_results_darwin.json on Mon Sep 7 15:22:33 2026
Toolchain: AppleClang 21.0.0.21000101, daslang 0.6.4, LLVM 22.1.5
Runtimes: Lua 5.5.1, LuaJIT 2.1.1787165859, Luau 0.736, Mono 6.14.1 (tarball Tue Apr 29 17:43:02 UTC 2025), .NET 10.0.300, QuickJS 2026-06-04, Quirrel 4.29.1, Zig 0.16.0
Test
DAS interpreter
Luau
Lua
LuaJIT -joff
Quirrel
QuickJS
Mono --interpreter
sha256
0.002773s ±1%
0.012006s ±1%
0.068520s ±2%
0.244511s ±2%
0.022305s ±1%
0.023738s ±2%
0.010770s ±1%
dictionary
0.014141s ±5%
0.021808s ±5%
0.039325s ±1%
0.020692s ±1%
0.047272s ±3%
0.047890s ±1%
0.317649s ±2%
n-bodies
0.009338s ±1%
0.034175s ±1%
0.043735s ±3%
0.032891s ±0%
0.069498s ±1%
0.080049s ±1%
0.027354s ±1%
spectral norm
0.026664s ±1%
0.035455s ±0%
0.060502s ±0%
0.067575s ±0%
0.132194s ±1%
0.159849s ±0%
0.031063s ±0%
mandelbrot
0.002027s ±0%
0.035392s ±1%
0.067813s ±1%
0.044533s ±1%
0.006969s ±0%
0.007705s ±0%
0.009289s ±1%
exp loop
0.007356s ±0%
0.009888s ±1%
0.021557s ±7%
0.015287s ±1%
0.042140s ±0%
0.038058s ±4%
0.025199s ±1%
string2float
0.000624s ±1%
0.000885s ±0%
0.002527s ±1%
0.006314s ±0%
0.001926s ±1%
0.004285s ±1%
0.052387s ±1%
particles kinematics
0.000867s ±0%
0.027191s ±0%
0.044496s ±2%
0.027130s ±0%
0.024131s ±0%
0.033272s ±1%
0.024075s ±1%
queen
0.000919s ±0%
0.002520s ±1%
0.001411s ±3%
0.002204s ±0%
0.002324s ±1%
0.003179s ±0%
0.000963s ±0%
interop host calls
0.002484s ±1%
0.013189s ±4%
0.012318s ±3%
0.036231s ±1%
0.036763s ±1%
0.021225s ±1%
0.096521s ±1%
primes loop
0.021266s ±0%
0.065177s ±1%
0.074389s ±1%
0.194396s ±1%
0.142386s ±0%
0.139018s ±1%
0.056620s ±1%
tree
0.029058s ±0%
0.029805s ±2%
0.034204s ±4%
0.031951s ±0%
0.082805s ±0%
0.059172s ±2%
0.019300s ±1%
sort
0.015197s ±1%
0.047498s ±2%
0.057182s ±2%
0.058652s ±3%
0.124804s ±0%
0.043169s ±1%
0.056968s ±2%
fibonacci loop
0.032358s ±0%
0.086310s ±0%
0.046465s ±0%
0.077212s ±0%
0.057577s ±0%
0.149136s ±1%
0.031503s ±1%
float2string
0.001252s ±0%
0.002162s ±1%
0.015892s ±1%
0.005921s ±0%
0.006142s ±0%
0.008635s ±0%
0.072442s ±0%
fibonacci recursive
0.044511s ±1%
0.076093s ±0%
0.066898s ±1%
0.053445s ±0%
0.157886s ±1%
0.083432s ±1%
0.045604s ±1%
Test
DAS AOT
DAS JIT
C++
Zig
Luau --codegen
LuaJIT
Mono
.NET
sha256
0.000188s ±1%
0.000137s ±1%
0.000156s ±1%
0.000151s ±0%
0.010564s ±1%
0.014569s ±1%
0.000980s ±1%
0.000488s ±0%
dictionary
0.009197s ±2%
0.008405s ±4%
0.024590s ±0%
0.007034s ±0%
0.018884s ±6%
0.007028s ±1%
0.077585s ±0%
0.042076s ±7%
n-bodies
0.001331s ±1%
0.000871s ±1%
0.000919s ±1%
0.000833s ±0%
0.012127s ±1%
0.003322s ±1%
0.005324s ±0%
0.001773s ±1%
spectral norm
0.001729s ±0%
0.000622s ±0%
0.001729s ±0%
0.001695s ±0%
0.007038s ±0%
0.002439s ±1%
0.006649s ±0%
0.001769s ±1%
mandelbrot
0.000564s ±0%
0.000463s ±0%
0.000364s ±0%
0.000341s ±1%
0.024104s ±1%
0.008171s ±1%
0.001868s ±1%
0.000380s ±0%
exp loop
0.003413s ±1%
0.001630s ±1%
0.001682s ±1%
0.001681s ±1%
0.005057s ±1%
0.002353s ±0%
0.006807s ±1%
0.002529s ±1%
string2float
0.000546s ±1%
0.000541s ±1%
0.000630s ±2%
0.000531s ±0%
0.000766s ±1%
0.005716s ±1%
0.004564s ±0%
0.001411s ±3%
particles kinematics
0.000340s ±1%
0.000334s ±1%
0.000364s ±0%
0.000284s ±0%
0.011709s ±0%
0.004397s ±0%
0.004598s ±0%
0.000311s ±0%
queen
0.000096s ±0%
0.000051s ±27%
0.000060s ±20%
0.000059s ±3%
0.000761s ±1%
0.000186s ±1%
0.000180s ±1%
0.000078s ±5%
interop host calls
0.001241s ±1%
0.000640s ±1%
0.000934s ±1%
0.000931s ±0%
0.012197s ±0%
0.000931s ±0%
0.007758s ±0%
0.001242s ±0%
primes loop
0.006157s ±0%
0.006784s ±1%
0.006812s ±1%
0.006812s ±0%
0.038144s ±1%
0.016319s ±0%
0.025371s ±1%
0.008225s ±1%
tree
0.002587s ±1%
0.002463s ±0%
0.002525s ±1%
0.002510s ±0%
0.019251s ±1%
0.012219s ±1%
0.003615s ±1%
0.003966s ±1%
sort
0.002493s ±0%
0.004296s ±0%
0.004369s ±1%
0.005523s ±1%
0.043498s ±1%
0.049470s ±0%
0.009773s ±1%
0.005504s ±2%
fibonacci loop
0.002021s ±1%
0.002020s ±1%
0.002046s ±1%
0.002020s ±0%
0.022800s ±0%
0.010105s ±0%
0.002020s ±0%
0.005010s ±11%
float2string
0.000998s ±2%
0.001068s ±2%
0.005873s ±0%
0.001022s ±1%
0.002040s ±1%
0.005519s ±0%
0.015960s ±0%
0.002572s ±1%
fibonacci recursive
0.003920s ±1%
0.003917s ±1%
0.003919s ±1%
0.004022s ±0%
0.039539s ±2%
0.006577s ±1%
0.005763s ±0%
0.003663s ±2%
Runtime
hello world
artifact
DAS interpreter
0.045955s ±1%
-
DAS JIT
0.331707s ±2%
-
DAS exe
0.011874s ±42%
50 KB
C++
0.005684s ±2%
33 KB
Zig
0.006075s ±3%
387 KB
Luau --codegen
0.007609s ±1%
-
Luau
0.007566s ±2%
-
Lua
0.005975s ±1%
-
LuaJIT -joff
0.006007s ±2%
-
LuaJIT
0.006050s ±2%
-
Quirrel
0.006747s ±2%
-
QuickJS
0.006306s ±2%
-
Mono --interpreter
0.024676s ±1%
3 KB
Mono
0.020914s ±1%
3 KB
.NET
0.028202s ±0%
4 KB
Linux — AMD Ryzen 7 PRO 8700GE w/ Radeon 780M Graphics
Platform information:
Captured from profile_results_linux.json on Tue Sep 8 03:34:04 2026
Toolchain: Clang 19.1.7, daslang 0.6.4, LLVM 22.1.5
Runtimes: Lua 5.5.1, LuaJIT 2.1.1787165859, Luau 0.736, Mono 6.8.0.105 (Debian 6.8.0.105+dfsg-3.3+deb12u1 Sat Jun 21 16:33:59 UTC 2025), .NET 10.0.400, QuickJS 2026-06-04, Quirrel 4.29.1, Zig 0.16.0
Test
DAS interpreter
Luau
Lua
LuaJIT -joff
Quirrel
QuickJS
Mono --interpreter
sha256
0.002846s ±0%
0.012476s ±3%
0.069006s ±1%
0.207071s ±1%
0.018705s ±1%
0.021217s ±0%
0.018426s ±3%
dictionary
0.011200s ±9%
0.019966s ±2%
0.039234s ±1%
0.011722s ±1%
0.053670s ±1%
0.047051s ±1%
0.789589s ±1%
n-bodies
0.009590s ±1%
0.028865s ±2%
0.041780s ±3%
0.025602s ±6%
0.071103s ±1%
0.082590s ±2%
0.051964s ±1%
spectral norm
0.023359s ±1%
0.032809s ±3%
0.058054s ±2%
0.037850s ±0%
0.106341s ±1%
0.091615s ±1%
0.047350s ±3%
mandelbrot
0.001844s ±5%
0.033268s ±0%
0.056295s ±1%
0.036354s ±1%
0.005786s ±1%
0.006373s ±2%
0.013227s ±2%
exp loop
0.005978s ±1%
0.011441s ±1%
0.024000s ±1%
0.010182s ±0%
0.036902s ±1%
0.030866s ±1%
0.129608s ±17%
string2float
0.000611s ±0%
0.001634s ±6%
0.002801s ±2%
0.003503s ±0%
0.002355s ±1%
0.003569s ±0%
0.061657s ±1%
particles kinematics
0.000943s ±2%
0.026618s ±0%
0.041305s ±5%
0.021490s ±0%
0.025210s ±1%
0.029831s ±1%
0.037883s ±5%
queen
0.000769s ±3%
0.001881s ±1%
0.001482s ±3%
0.000899s ±1%
0.002011s ±1%
0.002474s ±2%
0.001431s ±5%
sort
0.015375s ±0%
0.039060s ±0%
0.045675s ±1%
0.049922s ±2%
0.113032s ±0%
0.037431s ±0%
0.125254s ±2%
interop host calls
0.003546s ±8%
0.012171s ±0%
0.015366s ±1%
0.035585s ±1%
0.038334s ±2%
0.020714s ±4%
0.091517s ±1%
primes loop
0.026202s ±0%
0.150808s ±0%
0.059147s ±1%
0.044242s ±0%
0.101755s ±1%
0.108005s ±6%
0.066359s ±7%
tree
0.023598s ±1%
0.024752s ±3%
0.030397s ±3%
0.018273s ±1%
0.069381s ±1%
0.061231s ±2%
0.020085s ±2%
fibonacci loop
0.033214s ±5%
0.058058s ±0%
0.053669s ±0%
0.031187s ±8%
0.044007s ±14%
0.136777s ±0%
0.062566s ±0%
float2string
0.001227s ±2%
0.001780s ±0%
0.013272s ±3%
0.004574s ±0%
0.005433s ±2%
0.007695s ±0%
0.110064s ±3%
fibonacci recursive
0.047377s ±1%
0.061943s ±1%
0.048898s ±1%
0.034789s ±1%
0.116022s ±4%
0.084803s ±4%
0.042092s ±1%
Test
DAS AOT
DAS JIT
C++
Zig
Luau --codegen
LuaJIT
Mono
.NET
sha256
0.000129s ±0%
0.000097s ±0%
0.000100s ±0%
0.000116s ±0%
0.009744s ±0%
0.014621s ±1%
0.000893s ±1%
0.000370s ±5%
dictionary
0.006888s ±3%
0.007921s ±2%
0.028733s ±3%
0.009394s ±3%
0.016102s ±2%
0.010527s ±3%
0.079282s ±1%
0.049589s ±8%
n-bodies
0.001209s ±0%
0.000913s ±0%
0.001198s ±0%
0.000699s ±0%
0.011196s ±1%
0.003395s ±1%
0.004047s ±0%
0.001488s ±0%
spectral norm
0.001813s ±2%
0.001871s ±2%
0.001803s ±0%
0.001804s ±4%
0.006025s ±0%
0.001978s ±0%
0.004656s ±0%
0.001849s ±0%
mandelbrot
0.000456s ±0%
0.000260s ±0%
0.000296s ±0%
0.000215s ±0%
0.026295s ±2%
0.007494s ±1%
0.003694s ±0%
0.000264s ±0%
exp loop
0.002365s ±4%
0.002355s ±0%
0.004154s ±0%
0.002354s ±0%
0.004297s ±0%
0.003548s ±0%
0.005923s ±0%
0.003362s ±0%
string2float
0.000432s ±0%
0.000443s ±1%
0.001480s ±1%
0.000451s ±1%
0.001482s ±1%
0.003099s ±0%
0.004641s ±2%
0.001240s ±1%
particles kinematics
0.000254s ±0%
0.000230s ±0%
0.000238s ±2%
0.000140s ±1%
0.014432s ±1%
0.008672s ±5%
0.006603s ±0%
0.000396s ±0%
queen
0.000051s ±14%
0.000027s ±2%
0.000030s ±0%
0.000027s ±1%
0.000589s ±2%
0.000201s ±0%
0.000094s ±30%
0.000034s ±4%
sort
0.001851s ±0%
0.004455s ±0%
0.003403s ±0%
0.006400s ±0%
0.035448s ±1%
0.050153s ±3%
0.010762s ±2%
0.004327s ±3%
interop host calls
0.001177s ±33%
0.000797s ±0%
0.000981s ±0%
0.000981s ±0%
0.012176s ±0%
0.001562s ±0%
0.034433s ±0%
0.001379s ±0%
primes loop
0.010320s ±0%
0.012757s ±0%
0.012765s ±0%
0.012770s ±0%
0.026934s ±0%
0.009777s ±0%
0.012793s ±0%
0.012768s ±0%
tree
0.002053s ±0%
0.002036s ±0%
0.002088s ±0%
0.002030s ±0%
0.017965s ±0%
0.013385s ±0%
0.003005s ±2%
0.002786s ±1%
fibonacci loop
0.001271s ±0%
0.001271s ±0%
0.001271s ±0%
0.001272s ±0%
0.027162s ±2%
0.004327s ±0%
0.003833s ±0%
0.001317s ±0%
float2string
0.000954s ±1%
0.001045s ±0%
0.005535s ±0%
0.000842s ±0%
0.001636s ±1%
0.004166s ±0%
0.018536s ±0%
0.002173s ±4%
fibonacci recursive
0.002554s ±33%
0.002812s ±0%
0.002810s ±0%
0.002810s ±0%
0.040990s ±0%
0.005536s ±0%
0.005708s ±0%
0.002789s ±4%
Runtime
hello world
artifact
DAS interpreter
0.061432s ±1%
-
DAS JIT
0.422803s ±0%
-
DAS exe
0.015417s ±1%
16 KB
C++
0.006119s ±7%
16 KB
Zig
0.005976s ±2%
3.6 MB
Luau --codegen
0.006858s ±6%
-
Luau
0.006934s ±7%
-
Lua
0.006041s ±2%
-
LuaJIT -joff
0.005995s ±3%
-
LuaJIT
0.005994s ±3%
-
Quirrel
0.007003s ±6%
-
QuickJS
0.006009s ±6%
-
Mono --interpreter
0.017604s ±2%
3 KB
Mono
0.015476s ±2%
3 KB
.NET
0.024069s ±2%
4 KB
daslang — the daslang compiler and runtime