uv deduplica todos los archivos de la caché de wheels en un nuevo pull request

Fuentes: uv PR #21327 deduplicates all files in the wheel cache

Charlie Marsh, creador de uv, ha propuesto el pull request #21327 en el repositorio astral-sh/uv para deduplicar todos los archivos almacenados en la caché de wheels del gestor de paquetes. El cambio modifica el proceso de extracción y hash por contenido para que los archivos de un wheel compartan un único objeto en el almacén, en lugar de duplicarse por entrada.

Los autores presentan una comparativa de rendimiento entre el estado actual ("binary-only cache") y la nueva versión con la opción --preview-features content-addressed-cache. Las pruebas se ejecutaron sobre Linux/ext4 en una VM AMD EPYC-Milan con 8 CPUs fijas, usando Python 3.12.13 y Rust 1.98.0. Las cuatro ruedas evaluadas (AnyIO 4.9.0, SymPy 1.14.0, NumPy 2.2.6 y PyTorch 2.7.1+cpu) muestran regresiones en frío inferiores al 5% en la mediana, aunque el intervalo superior del 95% de PyTorch alcanza el 5,18%. En caché templada los cambios son menores, con SymPy mejorando un 0,64%.

Un commit complementario introduce la reutilización de un buffer de 64 KiB durante el hash, lo que reduce las asignaciones en el wheel de PyTorch de 11.120 a una. Sobre esa base adicional, los tiempos de instalación en frío bajan entre un 2,6% y un 9,5% según el paquete, y un entorno de 14 paquetes con concurrencia 4 mejora un 7%. Se han añadido cinco pruebas de integración que cubren wheels locales y en streaming, el manejo de RECORD, la limpieza de caché y la instalación entre sistemas de archivos.