Debian Code Search elimina su dependencia cgo con un codec TurboPFor nativo en Go y SIMD

Fuentes: Debian Code Search: Fast TurboPFor with Go SIMD

Debian Code Search (DCS) es un motor de búsqueda que indexa todo el código fuente open source incluido en Debian. Durante los últimos siete años, su índice posicional sobre disco se basó en la biblioteca C TurboPFor, accesible desde Go mediante cgo. El autor explica cómo logró eliminar esa dependencia y reescribir el codec de compresión de enteros en Go nativo, apoyado en el paquete experimental simd/archsimd incorporado en Go 1.26 (febrero de 2026), que ofrece operaciones SIMD de 128, 256 y 512 bits sobre amd64.

El detonante fue un cambio de enfoque: antes de optimizar con SIMD, descubrió que bastaba con reducir asignaciones y especializar el decodificador por anchura de bits para evitar regresiones de entre 10 y 100 ms por consulta. Esto le motivó a escribir también un codificador nativo en pocos días, con un rendimiento del 76 % respecto a C. A partir de ahí, la introducción de instrucciones AVX512 y de una técnica llamada positional popcount —detectada con ayuda de Claude Fable 5— elevó el rendimiento hasta superar al de la versión cgo previa. En una comparación estricta (mismas optimizaciones backportadas a C), Go se sitúa en ≈1,4× C.

El artículo detalla el rediseño de la API (BlockEncoder, BlockDecoder, modo streaming) y describe varias familias de optimizaciones: vectorización, localidad de caché, hot loops y ensamblador a mano. El resultado es un DCS sin código C, con un índice más rápido y un proyecto fiel a su identidad como software escrito en Go.