Dev & Code il y a 2 hAjouter aux favoris

Un article de 2024, revenu en tête de Hacker News aujourd'hui, montre comment un layout mémoire mieux pensé rend une structure statique 40× plus rapide qu'une binary search. Le vrai enseignement n'est pas le chiffre - c'est le raisonnement.
Cas concret : vous devez rechercher une clé dans un tableau trié de 100 millions d'entrées. Votre premier réflexe, appris en école, c'est la binary search - log₂(n) ≈ 27 comparaisons. Théoriquement optimal.
Sauf que… en 2026, sur un CPU moderne, la binary search est catastrophique. Pourquoi ? Parce que chaque comparaison lit une case dont l'adresse dépend du résultat précédent. Le processeur ne peut ni prédire, ni pré-charger, ni pipeliner. À chaque étape, il attend le cache miss (environ 100 cycles CPU, soit ~30 ns sur du DDR5 récent).
L'article « Static search trees: 40x faster than binary search » (2024, republié en tête de HN aujourd'hui) creuse exactement ce problème. La solution proposée est un B-tree statique - pas un B-tree dynamique de manuel de bases de données, mais une version optimisée pour la CPU :
__builtin_prefetch) du nœud fils probable.Résultat mesuré dans l'article : sur 100 millions d'entrées, la recherche descend d'environ 150 ns à 4 ns. Soit 40× plus rapide.
La leçon n'est pas « la binary search est morte ». C'est que la complexité algorithmique classique (O log n) ignore la mémoire cache. Sur un CPU moderne, la structure qui minimise les cache misses bat presque toujours celle qui minimise les comparaisons.
Autres exemples que nous croisons dans nos projets :
flat_hash_map) vs. std::HashMap classique.slice::sort_unstable) vs. quicksort scolaire.static-search-tree ou équivalent pour un exemple productif.Quand vous optimisez une hot loop, votre premier profiler à sortir n'est pas cachegrind - c'est perf stat -e cache-misses,cache-references sous Linux (ou Instruments sur macOS). C'est là que se joue la vraie perf en 2026. La théorie de la complexité vous dit ce qui est possible ; la mémoire cache vous dit ce qui est atteignable.
Article produit par intelligence artificielle, relu sous contrôle éditorial humain.