Conteo de palabras 494 veces más rápido con SIMD e hilos

2025-08-17

Este artículo detalla el recorrido del autor en la optimización de un programa de conteo de palabras, logrando una notable aceleración de 494 veces. Comenzando con una implementación Python ingenua (89,6 segundos), el autor mejoró progresivamente el rendimiento usando el módulo `re` de CPython (13,7 segundos), un bucle escalar en C (1,205 segundos) y, finalmente, instrucciones SIMD y multithreading (181 milisegundos). Cada paso de optimización se explica, cubriendo el uso de extensiones C, bucles C eficientes y la utilización de CPU multinúcleo. Aunque el multithreading produjo ganancias menores a las esperadas, la versión final alcanzó una velocidad de procesamiento impresionante de 5,52 GiB/s. El autor invita a los lectores a sugerir optimizaciones adicionales.

Leer más
Desarrollo

Dumac: Mejoras significativas del rendimiento en una herramienta de uso de disco macOS

2025-08-11

Dumac, una utilidad de uso de disco macOS más rápida que `du -sh`, aprovecha la llamada al sistema `getattrlistbulk` específica de macOS. Después de incorporar los comentarios de la comunidad, el autor aumentó el rendimiento en aproximadamente un 33 % cambiando de Tokio a Rayon para un mejor paralelismo y optimizando el particionamiento del conjunto hash de inode. Resolver la contención de inode mediante una estrategia de particionamiento refinada produjo mayores ganancias de velocidad.

Leer más
Desarrollo

Prototipado rápido de juegos con LÖVE

2024-12-31

Un programador, con el objetivo de completar un juego completo en 2025, construyó prototipos de ajedrez y juegos de cartas usando el framework LÖVE2D en Lua. La API simple pero potente de LÖVE permitió interacciones complejas de la IU con código mínimo, acelerado aún más por la generación de código asistida por LLM. El autor descubrió que LÖVE es ideal para el prototipado, especialmente la IU, pero notó la necesidad de mejoras en la recarga en caliente y la separación de la lógica para proyectos más grandes. El plan es usar LÖVE para desarrollar un MVP de juego básico.

Leer más