Lapis Benchmark Suite: Performance Report

Lapis v0.0.270 • Godot 4.8-dev7 • Linux 4.8-dev7
⚡ Release Progression: Tag 4.8-dev6 → 4.8-dev7 • +115.7% shift vs 21.4x baseline
View Detailed Diff →
Geometric Mean Speedup 46.2x Across 27 comparative benchmarks
Pure Compute Speedup 34.5x 10 numerical benchmarks
Engine Core Speedup 54.8x 17 engine API benchmarks
Comparison Groups 9 Grouped domain subsystems
Peak Speedup 3328.0x AStar2D
Lapis Benchmark Suite: Performance Comparison Execution time in milliseconds (shorter is faster) • Crystal Native vs GDScript AStar2D 0.05 ms (Crystal) 166.4 ms (GDScript) 3328.0x faster Base64 12.78 ms (Crystal) 163.46 ms (GDScript) 12.8x faster BinaryTrees 43.01 ms (Crystal) 1203.67 ms (GDScript) 28.0x faster Brainfuck 177.48 ms (Crystal) 19053.84 ms (GDScript) 107.4x faster CellularNoise 0.39 ms (Crystal) 57.94 ms (GDScript) 148.6x faster CompileTimes 9303.08 ms (Crystal) Native ConfigFileOps 0.08 ms (Crystal) 5.83 ms (GDScript) 72.9x faster DictionaryOps 19.12 ms (Crystal) 61.81 ms (GDScript) 3.2x faster ImageProcessing 4.13 ms (Crystal) 76.25 ms (GDScript) 18.5x faster JSON 9.83 ms (Crystal) 21.52 ms (GDScript) 2.2x faster Mandelbrot 18.1 ms (Crystal) 1216.58 ms (GDScript) 67.2x faster MaterialResources 1.77 ms (Crystal) 804.42 ms (GDScript) 454.5x faster Matmul 27.5 ms (Crystal) 2238.78 ms (GDScript) 81.4x faster NBody 3.94 ms (Crystal) 562.55 ms (GDScript) 142.8x faster NodeGroups 1.44 ms (Crystal) 11.98 ms (GDScript) 8.3x faster NodeLifecycle 4.09 ms (Crystal) 25.72 ms (GDScript) 6.3x faster PerlinNoise 0.42 ms (Crystal) 35.43 ms (GDScript) 84.4x faster Primes 18.03 ms (Crystal) 528.86 ms (GDScript) 29.3x faster ShaderCompilation 0.44 ms (Crystal) 92.49 ms (GDScript) 210.2x faster ShaderUniforms 0.21 ms (Crystal) 13.66 ms (GDScript) 65.0x faster Signals 4.39 ms (Crystal) 11.04 ms (GDScript) 2.5x faster SimplexNoise 0.19 ms (Crystal) 20.71 ms (GDScript) 109.0x faster SurfaceTool 0.12 ms (Crystal) 11.98 ms (GDScript) 99.8x faster TransformHierarchy 0.09 ms (Crystal) 85.24 ms (GDScript) 947.1x faster TransformMath 2.39 ms (Crystal) 66.99 ms (GDScript) 28.0x faster TreeTraversal 0.0 ms (Crystal) 8.35 ms (GDScript) 1.0x faster VectorMath2D 3.0 ms (Crystal) 132.21 ms (GDScript) 44.1x faster VisualShader 0.02 ms (Crystal) 4.79 ms (GDScript) 239.5x faster

Benchmark Comparison Groups

Side-by-side grouped evaluations measuring specific domain subsystems against baselines across languages and paradigms.

Filter Language Target:

BinaryTrees

GC pressure, bottom-up binary tree allocation & depth traversal • Baseline: Crystal
Compute
BinaryTrees • Latency Comparison (Lower is Faster) Baseline: Crystal • Interactive view mode: bar Crystal 43.01 ms 28.0x C++ 27.36 ms 44.0x Rust 28.01 ms 43.0x C# 49.26 ms 24.4x GDScript 1203.67 ms 1.0x
Language / Target Implementation Latency (ms) Speedup vs GDScript Ratio vs Crystal
Crystal Native LibGodot / LLVM O3 43.01 ms 28.0x faster 1.0x (Baseline)
C++ GCC / Clang -O3 27.36 ms 44.0x faster 1.57x faster
Rust rustc -O 28.01 ms 43.0x faster 1.54x faster
C# .NET 8 RyuJIT Release 49.26 ms 24.4x faster 1.15x slower
GDScript Godot VM Bytecode (Headless) 1203.67 ms 1.0x (Baseline) 28.0x slower than Crystal

ProceduralNoise

FastNoiseLite 2D Cellular Voronoi noise across 500x500 grid (250k samples) • Baseline: Crystal
EngineCore
ProceduralNoise • Latency Comparison (Lower is Faster) Baseline: Crystal • Interactive view mode: bar CellularNoise 0.4 ms (Release) 57.9 ms (Debug) 148.6x faster PerlinNoise 0.4 ms (Release) 35.4 ms (Debug) 84.4x faster SimplexNoise 0.2 ms (Release) 20.7 ms (Debug) 109.0x faster
Benchmark Description Crystal GDScript Speedup
CellularNoise FastNoiseLite 2D Cellular Voronoi noise across 500x500 grid (250k samples) 0.39 ms 57.94 ms 148.6x faster
PerlinNoise FastNoiseLite 2D Perlin noise across 500x500 grid (250k samples) 0.42 ms 35.43 ms 84.4x faster
SimplexNoise FastNoiseLite 3D Simplex Smooth noise across 100k samples 0.19 ms 20.71 ms 109.0x faster

CompileTime

Compilation latency and output binary size across Crystal, C++, C#, Rust (Debug vs Release) • Baseline: Crystal
Toolchain
CompileTime • Latency Comparison (Lower is Faster) Baseline: Crystal • Interactive view mode: bar CompileTimes 9303.08 ms
Benchmark Description Crystal GDScript Speedup
CompileTimes Compilation latency and output binary size across Crystal, C++, C#, Rust (Debug vs Release) 9303.08 ms - Native

Mandelbrot

2D coordinate escape-time fractal rasterization (500x500) • Baseline: Crystal
Compute
Mandelbrot • Latency Comparison (Lower is Faster) Baseline: Crystal • Interactive view mode: bar Crystal 18.1 ms 67.2x C++ 18.34 ms 66.3x Rust 18.79 ms 64.7x C# 41.39 ms 29.4x GDScript 1216.58 ms 1.0x
Language / Target Implementation Latency (ms) Speedup vs GDScript Ratio vs Crystal
Crystal Native LibGodot / LLVM O3 18.1 ms 67.2x faster 1.0x (Baseline)
C++ GCC / Clang -O3 18.34 ms 66.3x faster 1.01x slower
Rust rustc -O 18.79 ms 64.7x faster 1.04x slower
C# .NET 8 RyuJIT Release 41.39 ms 29.4x faster 2.27x slower
GDScript Godot VM Bytecode (Headless) 1216.58 ms 1.0x (Baseline) 67.2x slower than Crystal

MatrixMultiplication

Dense 2D matrix multiplication (N=300, float64) • Baseline: Crystal
Compute
MatrixMultiplication • Latency Comparison (Lower is Faster) Baseline: Crystal • Interactive view mode: bar Crystal 27.5 ms 81.4x C++ 24.52 ms 91.3x Rust 27.07 ms 82.7x C# 32.15 ms 69.6x GDScript 2238.78 ms 1.0x
Language / Target Implementation Latency (ms) Speedup vs GDScript Ratio vs Crystal
Crystal Native LibGodot / LLVM O3 27.5 ms 81.4x faster 1.0x (Baseline)
C++ GCC / Clang -O3 24.52 ms 91.3x faster 1.12x faster
Rust rustc -O 27.07 ms 82.7x faster 1.02x faster
C# .NET 8 RyuJIT Release 32.15 ms 69.6x faster 1.16x slower
GDScript Godot VM Bytecode (Headless) 2238.78 ms 1.0x (Baseline) 81.4x slower than Crystal

NBody

3D orbital dynamics physics integration (Velocity-Verlet, 50k steps) • Baseline: Crystal
Compute
NBody • Latency Comparison (Lower is Faster) Baseline: Crystal • Interactive view mode: bar Crystal 3.94 ms 142.8x C++ 3.83 ms 146.9x Rust 3.99 ms 141.0x C# 13.77 ms 40.9x GDScript 562.55 ms 1.0x
Language / Target Implementation Latency (ms) Speedup vs GDScript Ratio vs Crystal
Crystal Native LibGodot / LLVM O3 3.94 ms 142.8x faster 1.0x (Baseline)
C++ GCC / Clang -O3 3.83 ms 146.9x faster 1.03x faster
Rust rustc -O 3.99 ms 141.0x faster 1.01x slower
C# .NET 8 RyuJIT Release 13.77 ms 40.9x faster 3.45x slower
GDScript Godot VM Bytecode (Headless) 562.55 ms 1.0x (Baseline) 142.8x slower than Crystal

SceneGraph

20,000 nodes partitioned into 10 groups, group assignment & queries • Baseline: Crystal
EngineCore
SceneGraph • Latency Comparison (Lower is Faster) Baseline: Crystal • Interactive view mode: bar NodeGroups 1.4 ms (Release) 12.0 ms (Debug) 8.3x faster NodeLifecycle 4.1 ms (Release) 25.7 ms (Debug) 6.3x faster TreeTraversal 0.0 ms (Release) 8.4 ms (Debug)
Benchmark Description Crystal GDScript Speedup
NodeGroups 20,000 nodes partitioned into 10 groups, group assignment & queries 1.44 ms 11.98 ms 8.3x faster
NodeLifecycle Node2D allocation, property mutation, add_child, remove_child, free (20k) 4.09 ms 25.72 ms 6.3x faster
TreeTraversal Scene tree recursive traversal & property inspection (20k nodes) 0.0 ms 8.35 ms 1.0x faster

PrimeSieve

Sieve of Atkin + Prefix Trie search (Limit=500k) • Baseline: Crystal
Compute
PrimeSieve • Latency Comparison (Lower is Faster) Baseline: Crystal • Interactive view mode: bar Crystal 18.03 ms 29.3x C++ 16.58 ms 31.9x Rust 15.54 ms 34.0x C# 42.76 ms 12.4x GDScript 528.86 ms 1.0x
Language / Target Implementation Latency (ms) Speedup vs GDScript Ratio vs Crystal
Crystal Native LibGodot / LLVM O3 18.03 ms 29.3x faster 1.0x (Baseline)
C++ GCC / Clang -O3 16.58 ms 31.9x faster 1.09x faster
Rust rustc -O 15.54 ms 34.0x faster 1.16x faster
C# .NET 8 RyuJIT Release 42.76 ms 12.4x faster 2.38x slower
GDScript Godot VM Bytecode (Headless) 528.86 ms 1.0x (Baseline) 29.3x slower than Crystal

Shaders

Shader compilation throughput across 1,000 permutations • Baseline: Crystal
EngineCore
Shaders • Latency Comparison (Lower is Faster) Baseline: Crystal • Interactive view mode: bar ShaderCompilation 0.4 ms (Release) 92.5 ms (Debug) 210.2x faster ShaderUniforms 0.2 ms (Release) 13.7 ms (Debug) 65.0x faster VisualShader 0.0 ms (Release) 4.8 ms (Debug) 239.5x faster
Benchmark Description Crystal GDScript Speedup
ShaderCompilation Shader compilation throughput across 1,000 permutations 0.44 ms 92.49 ms 210.2x faster
ShaderUniforms High-frequency uniform parameter dispatch (50k updates) 0.21 ms 13.66 ms 65.0x faster
VisualShader VisualShader node graph creation and connection (200 graphs) 0.02 ms 4.79 ms 239.5x faster

Compute Benchmarks

Benchmark Description Crystal GDScript Speedup
Base64 Base64 strict encode & decode loop (64 KiB, 100 iter) 12.78 ms 163.46 ms 12.8x faster
BinaryTrees GC pressure, bottom-up binary tree allocation & depth traversal 43.01 ms 1203.67 ms 28.0x faster
Brainfuck Brainfuck AST interpreter + dynamic tape (bench_quick.b) 177.48 ms 19053.84 ms 107.4x faster
JSON JSON parse & 3D coordinate aggregation (10k items) 9.83 ms 21.52 ms 2.2x faster
Mandelbrot 2D coordinate escape-time fractal rasterization (500x500) 18.1 ms 1216.58 ms 67.2x faster
Matmul Dense 2D matrix multiplication (N=300, float64) 27.5 ms 2238.78 ms 81.4x faster
NBody 3D orbital dynamics physics integration (Velocity-Verlet, 50k steps) 3.94 ms 562.55 ms 142.8x faster
Primes Sieve of Atkin + Prefix Trie search (Limit=500k) 18.03 ms 528.86 ms 29.3x faster
TransformMath Transform3D translations, rotations & Vector3 projections (200k ops) 2.39 ms 66.99 ms 28.0x faster
VectorMath2D Vector2 lerp, dot, distance, and normalization across 500k ops 3.0 ms 132.21 ms 44.1x faster

Engine Core & Node Benchmarks

Benchmark Description Crystal GDScript Speedup
AStar2D AStar2D pathfinding on 100x100 grid (10k points, 500 queries) 0.05 ms 166.4 ms 3328.0x faster
CellularNoise FastNoiseLite 2D Cellular Voronoi noise across 500x500 grid (250k samples) 0.39 ms 57.94 ms 148.6x faster
ConfigFileOps ConfigFile parsing, querying and encoding 1,000 section INI config 0.08 ms 5.83 ms 72.9x faster
DictionaryOps Godot Dictionary 50,000 insertions and random access lookups 19.12 ms 61.81 ms 3.2x faster
ImageProcessing 512x512 Image procedural pixel computation and gamma blending (262k px) 4.13 ms 76.25 ms 18.5x faster
MaterialResources StandardMaterial3D allocation, properties, duplication, refcounting (10k) 1.77 ms 804.42 ms 454.5x faster
NodeGroups 20,000 nodes partitioned into 10 groups, group assignment & queries 1.44 ms 11.98 ms 8.3x faster
NodeLifecycle Node2D allocation, property mutation, add_child, remove_child, free (20k) 4.09 ms 25.72 ms 6.3x faster
PerlinNoise FastNoiseLite 2D Perlin noise across 500x500 grid (250k samples) 0.42 ms 35.43 ms 84.4x faster
ShaderCompilation Shader compilation throughput across 1,000 permutations 0.44 ms 92.49 ms 210.2x faster
ShaderUniforms High-frequency uniform parameter dispatch (50k updates) 0.21 ms 13.66 ms 65.0x faster
Signals Signal connection, argument marshalling & dynamic emission (50k calls) 4.39 ms 11.04 ms 2.5x faster
SimplexNoise FastNoiseLite 3D Simplex Smooth noise across 100k samples 0.19 ms 20.71 ms 109.0x faster
SurfaceTool SurfaceTool procedural mesh generation with normals/UVs (10k triangles) 0.12 ms 11.98 ms 99.8x faster
TransformHierarchy 15,000 Node3D hierarchy transformations & global position resolution 0.09 ms 85.24 ms 947.1x faster
TreeTraversal Scene tree recursive traversal & property inspection (20k nodes) 0.0 ms 8.35 ms 1.0x faster
VisualShader VisualShader node graph creation and connection (200 graphs) 0.02 ms 4.79 ms 239.5x faster

Toolchain & Compilation Benchmarks

Benchmark Description Crystal GDScript Speedup
CompileTimes Compilation latency and output binary size across Crystal, C++, C#, Rust (Debug vs Release) 9303.08 ms - Native

Historical Benchmark Releases & Logs

Tag / Release Lapis Version Godot Version GeoMean Speedup Reports & Logs
4.8-dev7 v0.0.270 Godot 4.8-dev7 40.3x faster HTML Report • Raw XML
0.0.270 v0.0.270 Godot 4.8-dev7 40.3x faster HTML Report • Raw XML

Recorded Tag Comparisons: