
De 7 couches et 5 processus à 4 couches et 2 processus. Un moteur d\'exécution conçu pour la vélocité de recherche quantitative.
Trois générations de raffinement : éliminer les surcharges à chaque couche.
7+ couches d\'abstraction, 5 processus séparés, surcharge de sérialisation IPC. Exécution Python uniquement avec une haute complexité architecturale.
Nombre de processus réduit, composants C++ introduits. Architecture de transition prouvant le concept d\'exécution embarquée.
4 couches, 2 processus, 1 protocole. Exécuteur C++ avec Python embarqué via pybind11. Flux de données Apache Arrow vers NumPy zéro-copie.
Mesuré avec le timing RDTSC, l\'épinglage d\'affinité CPU et le suivi de percentiles P50/P90/P99/P999.
| Métrique | Mesuré | Cible |
|---|---|---|
| Latence par barre | 2,15 ns | < 1 µs |
| Temps d\'acquisition GIL | 26,62 ns | < 10 µs |
| Durée de détention GIL | 203,30 ns | < 100 µs |
| Accélération SIMD (AVX2) | 2,48x | ≥ 2x |
| Débit lock-free | 15,73 M ops/s | > 10 M ops/s |
| Global vs Python | 500-1000x | > 100x |
Des données de marché à l\'exécution de stratégie sans aucune copie mémoire.
Données de marché stockées au format Apache Parquet avec compression colonnaire. L\'accès aux fichiers mappés en mémoire élimine la surcharge de désérialisation.
Apache Arrow fournit une disposition mémoire colonnaire indépendante du langage. C++ et Python partagent la même mémoire sans aucune copie ni conversion.
pybind11 expose les tampons Arrow comme des tableaux NumPy dans le même espace mémoire. Le code Python de stratégie lit les données détenues par C++ avec zéro allocation.
De l\'architecture aux nanosecondes : une approche systématique des performances.
L\'exécuteur mono-processus V3 a éliminé la sérialisation IPC, la création de processus et le marshaling de données inter-processus. Le gain le plus important est venu de la simplification architecturale.
Timing RDTSC avec épinglage d\'affinité CPU. Suivi de percentiles P50/P90/P99/P999 sur 12 programmes de benchmark. Infrastructure de mesure reproductible établie.
LTO, -march=native, abstraction SIMD xsimd, allocateur mimalloc, journalisation Quill à faible latence, conteneurs Abseil. Optimisations au niveau compilateur et bibliothèque.
Infrastructure PMR, allocateurs alignés sur le cache, zéro allocation sur le chemin critique. Ciblant les cache miss L1 < 5% et TLB miss < 0,5%.
Clonez, compilez et exécutez votre premier backtest en quelques minutes. Le moteur est inclus dans le niveau gratuit.
git clone https://github.com/StratCraft/StratCraft.git\ncd StratCraft\npnpm install && pnpm dev:desktop