Si encuentras algo que no entiendes puedes dejarlo en la sección de comentarios y trataremos de ayudarte tan rápido como podamos.
Solución:
Solución 1:
Varios años después de que se hiciera esta pregunta por primera vez, aparecieron algunos zlib x86_64 más rápidos usando el tipo de optimización que sugirió BarsMonster:
- Cloudflare zlib
- Intel zlib
- igzip de intel
- c-zlib de Google
- liberarse
Los autores de samtools (un conjunto de herramientas para interactuar con datos de secuenciación de alto rendimiento) produjeron una comparación de las velocidades de zlib.
zlib-ng recopila optimizaciones de zlib que no están en la línea principal de zlib, pero es posible que no sean tan estables como la línea principal de zlib. Su rastreador de problemas también es instructivo como referencia a otras aceleraciones conocidas de zlib.
Recientemente, se realizó una solicitud de extracción que afirma “acelerar inflate_fast hasta 1.5x en x86_64” (llenando y copiando 8 bytes a la vez), pero no se aceptó en la línea principal zlib. El parche que proporciona este trabajo también está teniendo un viaje lleno de baches al ser aceptado en Chromium (vea este error de Chromium y la revisión de Chromium), pero es de esperar que el remitente se tome un descanso para alejarse y recargar porque desde la distancia parece que el progreso estaba siendo muy lento. hecho en una situación compleja…
Incluso más recientemente, libdeflate es una reescritura altamente optimizada que produce/consume salida/entrada compatible con zlib pero no proporciona una API compatible con zlib. Al momento de escribir esto tiene la corona de velocidad zlib.
Solución 2:
Otra alternativa es la biblioteca miniz (dominio público, unlicense.org), que implementa la mayor parte de la API de zlib en un solo archivo fuente C y lee/escribe flujos de datos comprimidos compatibles con zlib. En el nivel de compresión 1, utiliza un compresor en tiempo real que es extremadamente rápido (un poco más lento que minilzo, pero con mayor compresión).
Solución 3:
No es una reconstrucción, pero dos buenas alternativas a zlib son quicklz y fastlz. Ambos son muy rápidos en relación con gzip -1, pero no logran una relación de compresión tan buena. Para mi aplicación, el tamaño aumentaba entre un 10 y un 15 %, pero la velocidad de compresión era 6x, por lo que era una muy buena compensación.
Por supuesto, ninguno es compatible con zlib, por lo que es posible que no funcione para usted.
Calificaciones y comentarios
Si sostienes algún recelo o disposición de limar nuestro división puedes escribir un exégesis y con placer lo leeremos.