Comptage de mots 494 fois plus rapide avec SIMD et threads

2025-08-17

Cet article détaille le parcours de l'auteur dans l'optimisation d'un programme de comptage de mots, réalisant une accélération remarquable de 494 fois. En commençant par une implémentation Python naïve (89,6 secondes), l'auteur a progressivement amélioré les performances en utilisant le module `re` de CPython (13,7 secondes), une boucle scalaire en C (1,205 secondes), et enfin, des instructions SIMD et du multithreading (181 millisecondes). Chaque étape d'optimisation est expliquée, couvrant l'utilisation d'extensions C, des boucles C efficaces et l'utilisation de CPU multinœuds. Bien que le multithreading ait produit des gains moins importants que prévu, la version finale a atteint une vitesse de traitement impressionnante de 5,52 GiB/s. L'auteur invite les lecteurs à suggérer des optimisations supplémentaires.

Lire plus
Développement

Dumac : Améliorations significatives des performances d’un outil d’utilisation du disque macOS

2025-08-11

Dumac, un utilitaire d’utilisation du disque macOS plus rapide que `du -sh`, utilise l’appel système `getattrlistbulk` spécifique à macOS. Après avoir intégré les commentaires de la communauté, l’auteur a amélioré les performances d’environ 33 % en passant de Tokio à Rayon pour un meilleur parallélisme et en optimisant le partage de l’ensemble de hachage inode. La résolution de la contention d’inode grâce à une stratégie de partage améliorée a permis de gagner encore en vitesse.

Lire plus
Développement

Prototypage de jeux rapide avec LÖVE

2024-12-31

Un programmeur, dans le but de terminer un jeu complet en 2025, a créé des prototypes de jeux d'échecs et de cartes à l'aide du framework LÖVE2D en Lua. L'API simple mais puissante de LÖVE a permis des interactions complexes d'interface utilisateur avec un minimum de code, encore accélérées par la génération de code assistée par LLM. L'auteur a trouvé LÖVE idéal pour le prototypage, en particulier pour l'interface utilisateur, mais a noté la nécessité d'améliorer le rechargement à chaud et la séparation de la logique pour les projets plus importants. Le plan est d'utiliser LÖVE pour développer un MVP de jeu de base.

Lire plus