¿Existe una relación entre la compresión de datos y la optimización del código?

No exactamente. Sin embargo, en general, existe una compensación de 3 vías entre la relación de compresión, la velocidad y el uso de memoria. Los dos gráficos a continuación ilustran esta tendencia en el benchmark de compresión de texto grande.

El primer gráfico compara el tiempo de compresión con el tamaño de 1 GB de texto de Wikipedia en inglés. Aunque el punto de referencia compara cientos de compresores, solo se muestran aquellos en la frontera de Pareto. Estos son los mejores compresores en el sentido de que ningún programa es más rápido y comprime más pequeño. Todos los demás puntos estarían por encima de la línea. Hice estos gráficos en 2008 usando los compresores más conocidos en ese momento, pero la misma tendencia todavía se mantiene hoy. Tenga en cuenta que el tiempo de compresión utiliza una escala logarítmica.

El segundo gráfico compara el tamaño comprimido frente a la memoria necesaria para comprimir.

Nuevamente, la escala de memoria es logarítmica. En otras palabras, la demanda de recursos informáticos crece exponencialmente a medida que la relación de compresión mejora linealmente. No graficé la velocidad de descompresión ni la memoria frente al tamaño, pero la tendencia es similar.

La tendencia se mantiene en una amplia gama de algoritmos de compresión: PPM (predicción por coincidencia parcial), CM (mezcla de contexto), BWT (transformación de Burrows Wheeler), SR (clasificación de símbolos), LZ77 (Lempel Ziv) y ROLZ (desplazamiento reducido LZ )

La pregunta no está muy clara, probablemente pueda reformular su intención. La ‘compresión de datos’ es excelente para almacenar datos en la base de datos y moverlos, ya que ahorra espacio de almacenamiento y ocupa menos ancho de banda de la red.

Por otro lado, optimiza su código para una ejecución rápida y probablemente para una mejor legibilidad y mantenimiento.

Si sus datos son compresas, ¿su código se optimizará automáticamente mejor? – No

Si su código está optimizado, ¿se comprimirán los datos automáticamente? – No

Para mí, estos dos son cosas separadas.