Optimización de scc tras compararse con mezura: cuellos de botella y arreglos

El desarrollador de scc, una herramienta para contar líneas de código, detectó cuellos de botella internos al comparar su rendimiento con mezura, otro contador más reciente. Las pruebas con hyperfine sobre el árbol de fuentes del kernel Linux mostraron que mezura completaba el trabajo 2,56 veces más

Kino: un servidor web Ractor de alto rendimiento para Ruby 4.0

Kino es un servidor web experimental para Ruby 4.0 o superior que aprovecha los Ractors —unidades de ejecución paralela del lenguaje— para evitar el modelo tradicional de fork por núcleo, muy costoso en memoria. Su arquitectura combina un front-end en Rust (Tokio + Hyper) encargado de la red, trabaj

Reequilibrio de los niveles de compresión Deflate en Go

Tras un trabajo prolongado de optimización de la compresión Deflate en Go, el análisis de los benchmarks reveló dos problemas claros en los niveles de compresión existentes. En primer lugar, existía un salto de rendimiento considerable entre el nivel 1 y el nivel 2, algo esperable porque el nivel 1

Optimización guiada por perfil en Go: qué es y cuánto mejora el rendimiento

La optimización guiada por perfil, conocida como PGO, sustituye las conjeturas del compilador por datos medidos: se ejecuta el programa, se registra dónde consume tiempo y esa grabación se devuelve al compilador para una segunda compilación más afinada. Go incorpora PGO desde la versión 1.20 mediant

Códecs HTTP/2 en Envoy: por qué oghttp2 rinde peor que nghttp2

Una actualización rutinaria de Envoy en entornos de producción elevó el uso de CPU cerca de un 20% tras migrar el códec HTTP/2 por defecto de nghttp2 a oghttp2, el códec en C++ de Google heredado de la pila QUICHE. Las pruebas, reproducidas en Intel Sapphire Rapids, AMD Zen 4, AWS Graviton4 y Google

std::hive de C++26: más rápido que list, pero no reemplaza a vector

std::hive, el nuevo contenedor que incorpora el estándar C++26, ocupa un espacio intermedio entre std::vector y std::list. Como un vector, almacena sus elementos en bloques contiguos de memoria, lo que permite recorrerlos sin saltar entre punteros; como una lista, nunca mueve un elemento tras insert

pgtestdb: clonación de bases de plantilla para acelerar tests en Go y Postgres

pgtestdb es un paquete de testing en Go y Postgres creado por Peter Downs que aprovecha la función nativa de bases de datos plantilla de PostgreSQL para acelerar la preparación de entornos de prueba. En lugar de migrar una base de datos desde cero cada vez, el paquete clona una plantilla con todas s

Cómo perfilar código eBPF con perf y flamegraphs

Perfilar código eBPF es clave para cuantificar la sobrecarga que introduce un hook en el kernel antes de llevarlo a producción. Este artículo describe una metodología reproducible para medir y diagnosticar ese impacto, usando como caso de estudio un hook LSM de file_open. El método combina tres pie

Gigatoken: un tokenizador en Rust hasta 1000 veces más rápido que HuggingFace

Gigatoken es una biblioteca de tokenización para modelos de lenguaje escrita en Rust que alcanza velocidades de hasta 24,53 GB/s en CPU AMD EPYC 9565 de 144 núcleos, frente a las 24,8 MB/s que ofrece el tokenizador de HuggingFace para GPT-2. Esto representa una aceleración cercana a 989 veces respec

misa77: un códec LZ con descompresión hasta tres veces más rápida que LZ4

misa77 es un códec de compresión basado en algoritmos LZ orientado al nicho de datos que se escriben una vez y se leen muchas veces. Su objetivo principal es ofrecer una velocidad de descompresión muy alta en un solo hilo, con un uso de memoria constante e independiente del tamaño de la entrada: com

runloom: corutinas al estilo Go para Python 3.13t sin GIL

runloom es una biblioteca que lleva a CPython el modelo de gorutinas de Go: corutinas apilables con canales, scheduler M:N con work-stealing, netpoll (epoll/kqueue/IOCP) y un cambio de contexto en ensamblador de unos 80 nanosegundos, sin syscall. Gracias a runloom.fiber(fn) y runloom.monkey.patch(),

Cuánto ayudan los niveles de microarquitectura amd64 en Go

Recompilar código Go con niveles de microarquitectura más altos puede recortar hasta un 43% el tiempo de ejecución en operaciones intensivas, sin tocar una sola línea de código fuente, según un análisis publicado por el investigador Daniel Lemire, profesor de la Universidad de Quebec y reconocido ex