The HNPaper

lundi 23 mars 2026
Archives

Archives

Tag : #systeme  •  1 article  •  Page 1 sur 1
16 mars 2026 52 min

SBCL Fibers : Les Threads Coopératifs qui Révolutionnent Lisp SBCL Fibers offre une implémentation de "threads" coopératifs légers en espace utilisateur, conçue pour optimiser la gestion des charges de travail concurrentes et gourmandes en E/S, typiques des serveurs web. Ce système préserve un modèle de programmation séquentiel tout en réduisant drastiquement l'empreinte mémoire (piles de 256 Ko par défaut contre 8 Mo pour les threads OS) et en accélérant les changements de contexte en espace utilisateur. L'intégration transparente permet aux primitives bloquantes existantes de SBCL (attente E/S, mutex, sommeil) de fonctionner coopérativement. Un ordonnanceur sophistiqué gère la distribution des tâches via le "work stealing" sur plusieurs cœurs, assurant une utilisation efficace des ressources. L'intégration robuste avec le ramasse-miettes garantit la sécurité des objets Lisp. Les analyses de performance révèlent que Fibers surpasse les threads OS à haute concurrence, offrant des gains significatifs en débit et en efficacité mémoire. Ce mécanisme est considéré comme expérimental, mais est déjà utilisé en production. Il est important de noter que le "pinning" (épinglage) des fibres, nécessaire pour certaines interactions avec des bibliothèques C sensibles au thread (comme SSL), peut bloquer temporairement les threads porteurs, ce qui nécessite une gestion attentive ou des alternatives entièrement écrites en Lisp. La capacité de décharger des tâches, même pour des opérations comme l'impression, pour éviter de bloquer le flux principal est également mise en avant. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47382398) - **Article source** : [SBCL Fibers – Lightweight Cooperative Threads](https://atgreen.github.io/repl-yell/posts/sbcl-fibers/)

← Retour à la Une