Aller au contenu

Le backtracker JIT : du Rust portable à égalité avec du C optimisé sur les plateaux difficiles

Un backtracker Rust en profondeur d'abord, sûr et portable, spécialisé à l'exécution en émettant puis compilant du Rust propre à chaque puzzle, porté de 43 à 123 millions de nœuds de recherche par seconde sur un cœur. Mesuré équitablement face au C de Peter McGavin sur la même machine : à égalité sur les plateaux difficiles et profonds comme le vrai Eternity II, et à environ 44 % de sa vitesse sur les faciles. Chaque échelon parcourt l'arbre identique ; tout le gain vient du code, pas de l'algorithme.

par Raphaël Anjou · method par Peter McGavin

expériencemesuremesuréAller plus viteRetour arrièreMis à jour 2026-07-20
Reproduirecalcul lourd — script et résultats sont dans le dépôtrelance la rechercheBudget: 6–30 s per benchmark run
Matériel & exécution
Banc standardiséCPU seul
0.0083cœurs·heure
Cœurs
1
RAM
16 GiB
GPU
0
CPU
Apple M1
Machine
MacBook (Apple M1, 8 cores), single-threaded generated binary
Budget
6–30 s per benchmark run
Départ
deterministic search; a candidate-order --seed only reorders equal buckets for portfolio diversity
Reproduire ce résultat

calcul lourd — script et résultats sont dans le dépôt

cargo run --release -p dfs-codegen --bin run_dfs_codegen_jit -- --puzzle P.json --chain2 --opt native

Continuer l'exploration

Cité par

Source de la pageVersion Markdown