- Un signalement indiquait que FreeBSD utilisait 7 % de son temps de démarrage à trier les SYSINIT avec un tri à bulles
- Le code datait de 1996 et, à l’époque, il n’y avait qu’environ 30 SYSINIT à trier ; aujourd’hui, il y en a plus d’un millier, ce qui rallonge l’opération
- Un commit récent a remplacé les tableaux de SYSINIT par des
SLIST, ce qui permet d’utiliser un tri fusion et accélère aussi l’ajout de nouveaux SYSINIT
- Le tri fusion est jusqu’à environ 100 fois plus rapide
- Dans le cas de Firecracker, cela permet d’économiser 2 ms sur un démarrage total de 28 ms
3 commentaires
Pour des jeux de données en dessous d’une certaine taille, il était sans doute pertinent d’utiliser un code petit et facile à comprendre.
Il doit encore rester pas mal de cas d’usage d’algorithmes lents à cause de ce genre de décision.
(C’est un préjugé, mais) j’ai fortement tendance à penser que, s’il y a des gens pour chipoter là-dessus, ce seront surtout des gens qui se plaignent beaucoup sans être d’une grande aide.
FreeBSD consacre 7 % de son temps de démarrage à trier les SYSINIT avec un tri à bulles, qui a été remplacé par un tri fusion
Commentaire Hacker News