Voici Fly.Board, un moteur de blog implémenté directement en C11/C23 par un développeur lassé de la complexité de Spring et de la lourdeur de WordPress. Je partage ici ses performances, avec une capacité confirmée à gérer le C10k dans un binaire unique, dans un environnement HTTP/3 (QUIC) sur TLS 1.3.
Caractéristiques principales
- Minimalist Stack : framework maison (CWIST) et architecture en binaire unique
- Pure SSR (Server-Side Rendering) : réduction maximale de la latence de rendu côté client
- LibTTAK : outil personnalisé de gestion mémoire garantissant le traitement asynchrone et la sûreté mémoire tout en conservant la vitesse du C
- High Performance : fonctionnement à faible latence avec 20 Mo à l’état idle, et un RSS d’environ 369 Mo même avec 10 000 connexions simultanées
- Modern Protocol : prise en charge de HTTP/3 (QUIC) et de TLS 1.3 sur une stack C personnalisée
Résultats du benchmark C10k (/usr/bin/time -v)
- Connexions simultanées : 10 000 (maintenues pendant 24 min 46 s)
- Occupation mémoire : RSS maximal d’environ 369 Mo (environ 37 Ko par connexion)
- Efficacité I/O : 0 major page fault (aucun goulot d’étranglement lié aux I/O disque)
- Stabilité des données : à la réception de
SIGINT, sauvegarde sûre des données via NukeDB avec 89 208 sorties FS
Comparaison avec les stacks existantes
- WordPress : consommation de ressources importante sur une base PHP-FPM/MySQL, avec besoin de cache multicouche
- Pure SSR (Server-Side Rendering) : réduction de la latence de rendu sur les appareils peu puissants
- Spring Boot : complexité initiale et empreinte mémoire élevées dues au heap JVM et au conteneur DI
- Fly.Board : peut gérer confortablement le C10k sur un VPS de moins de 1 Go, sans couche de cache séparée
Limites actuelles et travaux à venir
- Il reste à améliorer l’efficacité du traitement en userspace face à un system time supérieur au user time
- En plus du benchmark centré sur la lecture, une validation est prévue pour la charge d’écriture de la couche de données basée sur SQLite (rédaction simultanée de commentaires et de billets)
Liens
- GitHub : https://github.com/gg582/fly.board
J’ai cherché à trouver un équilibre entre maturité technique et utilité pratique. J’espère que cela pourra constituer une bonne alternative pour les développeurs souhaitant exploiter un blog personnel sur un VPS modeste. Les retours sont les bienvenus !
Aucun commentaire pour le moment.