Supongamos que necesito enviar algunos datos de una computadora a otra, a través de una red bastante rápida ... por ejemplo, una conexión estándar de 100Mbit (~ 10MB / s). Mis unidades de disco son HDD estándar, por lo que su velocidad oscila entre 30 MB / sy 100 MB / s. Así que supongo que comprimir los datos sobre la marcha podría ayudar.
Pero ... no quiero estar limitado por la CPU. Si elijo un algoritmo que es intensivo en la CPU, la transferencia en realidad será más lenta que sin compresión.
Esto es difícil con compresores como GZIP y BZIP2 porque generalmente establece la fuerza de compresión una vez para toda la transferencia, y mis flujos de datos a veces son fáciles, a veces difíciles de comprimir; esto hace que el proceso sea subóptimo porque a veces no uso CPU completa, y a veces el ancho de banda está infrautilizado.
¿Existe un programa de compresión que se adapte a la CPU / ancho de banda actual y llegue al punto óptimo para que la transferencia sea óptima? Idealmente para Linux, pero todavía tengo curiosidad por todas las soluciones. Me encantaría ver algo compatible con los descompresores GZIP / BZIP2, pero esto no es necesario.
Por lo tanto, me gustaría optimizar el tiempo de transferencia total, no simplemente la cantidad de bytes para enviar.
Además, no necesito descompresión en tiempo real ... la compresión en tiempo real es suficiente. El host de destino puede procesar los datos más tarde en su tiempo libre. Sé que esto no cambia mucho (la compresión suele ser mucho más intensiva en CPU que la descompresión), pero si hay una solución que podría usar este hecho, mucho mejor.
Cada vez que estoy transfiriendo datos diferentes, y realmente quiero hacer estas transferencias únicas lo más rápido posible. Por lo tanto, no me beneficiaré de obtener transferencias múltiples más rápido debido a una compresión más fuerte.
Gracias,