Skip to content

Repository files navigation

dasProfile

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.

Benchmark Snapshot

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.

macOS — Apple M1 Max

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

Interpreted

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%

AOT or JIT

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%

Startup

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

Interpreted

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%

AOT or JIT

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%

Startup

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

Related

  • daslang — the daslang compiler and runtime

About

daslang (daScript) performance tests

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages