Les benchmarks sont essentiels pour mesurer la performance du langage Vitte, de son compilateur et de sa machine virtuelle.
Ils permettent de comparer différentes versions, de détecter des régressions, et d’optimiser la VM, le runtime et le compilateur.
Ce document présente :
vitte-vm
dernière version stablehyperfine
, criterion
, perf
benchmarks/results/
Tests ciblés sur une seule fonctionnalité :
ADD
, MUL
, DIV
)for
, while
Exemple : addition de 10 millions d’entiers
let s = 0
for let i = 0; i < 10_000_000; i = i + 1 {
s = s + i
}
print(s)
Tests sur programmes complets :
vitte build benches/fib.vit -o fib.vitbc
vitte exec fib.vitbc
hyperfine './target/release/vitte exec fib.vitbc'
cargo bench -p vitte-bench
Benchmark | Vitte VM 0.2 | Python 3.12 | Lua 5.4 | Rust (native) |
---|---|---|---|---|
Fibonacci (30 récursif) | 120 ms | 250 ms | 180 ms | 0.4 ms |
Boucle 10M additions | 95 ms | 200 ms | 140 ms | 0.3 ms |
Quicksort 1M éléments | 450 ms | 900 ms | 600 ms | 5 ms |
Multiplication matrices | 620 ms | 1100 ms | 720 ms | 8 ms |
Observation : la VM Vitte est 2x plus rapide que Python et proche de Lua en micro-benchmarks, mais reste loin du code natif.
graph LR
A[Fibonacci] -->|Vitte| B[120 ms]
A -->|Python| C[250 ms]
A -->|Lua| D[180 ms]
A -->|Rust| E[0.4 ms]
Exemple GitHub Actions :
name: Benchmarks
on:
workflow_dispatch:
jobs:
benchmark:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo build --release -p vitte-cli
- run: cargo bench -p vitte-bench
Les résultats sont archivés et comparés automatiquement.
hyperfine
Les benchmarks assurent la crédibilité technique du langage Vitte.
Ils guident les optimisations, mettent en lumière les points faibles et permettent d’aligner la VM avec les standards de performance modernes.
Avec une stratégie continue de benchmark et d’analyse, Vitte pourra rivaliser avec les langages dynamiques établis (Python, Lua) et tendre vers la performance du natif.