Un nuevo esquema de compresión de datos, desarrollado por los investigadores del MIT, permite liberar más espacio en las computadoras y en los dispositivos móviles, y con ello poder correr más rápido y más programas simultáneamente.
Los niveles de compresión de datos actuales permiten ya que las máquinas sean más rápidas pero además, el buscar nuevos métodos de compresión permite que el acceso a la memoria principal, que es lo más costoso (incluso sobre el tiempo de procesador), haga que los sistemas sean más eficientes, reduciendo la frecuencia de acceso a la memoria por parte de las aplicaciones.
La memoria en las computadoras actuales manejan y transfieren datos en tamaños fijos de bytes, que es con lo que operan las técnicas de compresión. El software no tiene, sin embargo, tener que manejar grupos de datos de tamaño fijo. En lugar de eso, ahora la idea es usar «objetos», estructuras de datos que contienen varios tipos de datos y que tienen un tamaño variable. Por ende, las técnicas anteriores de compresión se vuelven obsoletas.
En un artículo presentado en la Conferencia Architectural Support for Programming Languages and Operating Systems, de la ACM, los investigadores del MIT describieron el primer enfoque para comprimir objetos en la jerarquía definida en la memoria. Esto pretende reducir el uso de la memoria mientras que mejora el desempeño y la eficiencia.
Los programadores podrían beneficiarse de esta técnica cuando codifican en cualquier lenguaje moderno como Java, Python y Go, que guarda y maneja los datos usando objetos, sin cambiar el código. Al final del día, los consumidores podrían ver que sus computadoras estarían ejecutando más rápido los programas o bien, tener acceso a más aplicaciones ejecutándose simultáneamente. Como cada aplicación estaría usando menos memoria, correría más rápido y habría más espacio para más programas.
En algunos experimentos usando una máquina virtual de Java modificada, la nueva técnica comprimió el doble de datos y uso menos memoria (alrededor de la mitad), comparándolo con los métodos tradicionales. «La motivación era tratar de llegar a tener una nueva jerarquía de la memoria que pudiese hacer compresión basada en objetos, pues es como la mayoría de los lenguajes de programación moderna manipulan los datos», dice el primer autor, Po-An Tsai, un estudiante graduado del Laboratorio de Inteligencia Artificial (CSAIL)
«Todos los sistemas de cómputo podrían beneficiarse de esto», añade el co-autor, Daniel Sánchez, un profesor de ingeniería e investigador del CSAIL. «Los programas se vuelven más rápidos porque dejan de tener que pasar por el cuello de botella que es el ancho de banda de la memoria».
El artículo puede leerse aquí.