Vamos supor que preciso enviar alguns dados de um computador para outro, através de uma rede bastante rápida ... por exemplo, conexão padrão de 100Mbit (~ 10MB / s). As minhas unidades de disco são de série, pelo que a sua velocidade está entre 30MB / se 100MB / s. Então eu acho que comprimir os dados na hora pode ajudar.
Mas ... eu não quero ser limitado pela CPU. Se eu escolher um algoritmo que seja intensivo na CPU, a transferência será mais lenta do que sem compactação.
Isso é difícil com compressores como GZIP e BZIP2 porque você costuma configurar a força de compressão uma vez para toda a transferência, e meus fluxos de dados são às vezes fáceis, às vezes difíceis de compactar - isso torna o processo sub-ótimo porque às vezes eu não uso CPU cheia e, às vezes, a largura de banda é subutilizada.
Existe um programa de compressão que se adapte à atual CPU / banda e alcance o ponto ideal para que a transferência seja ideal? Idealmente para Linux, mas ainda estou curioso sobre todas as soluções. Adoraria ver algo compatível com os descompressores GZIP / BZIP2, mas isso não é necessário.
Portanto, eu gostaria de otimizar o tempo total de transferência, não apenas a quantidade de bytes para enviar.
Também não preciso de descompressão em tempo real ... a compressão em tempo real é suficiente. O host de destino pode processar os dados posteriormente em seu tempo livre. Eu sei que isso não muda muito (a compactação é geralmente muito mais intensa que a descompactação), mas se houver uma solução que possa usar esse fato, melhor ainda.
Sempre que estou transferindo dados diferentes, quero realmente fazer essas transferências únicas o mais rápido possível. Por isso, não me beneficiarei de obter várias transferências mais rapidamente devido à compactação mais strong.
Obrigado,