Pergunta

Eu preciso porções compressa de tráfego de rede da nossa aplicação para o desempenho. Eu presumo que isso significa que eu preciso para ficar longe de alguns dos algoritmos mais recentes, como bzip2, que acho que tenho ouvido é mais lento.

Foi útil?

Solução

Você pode usar deflater / inflater que é construído no JDK. Há também GZIPInputStream e GZIPOutputStream, mas realmente depende do seu uso exato.

Editar:

A leitura mais comentários parece que o taffic rede é HTTP. Dependendo do servidor, ele provavelmente tem suporte para compressão (especialmente com deflate / gzip). O problema torna-se então no cliente. Se o cliente é um navegador que provavelmente já suporta. Se o seu cliente é um cliente webservices ou um cliente http verifique a documentação para esse pacote para ver se ele é compatível.

Parece que jakarta-commons httpclient pode exigir que você faça manualmente a compressão. Para activar esta no lado do cliente que você vai precisar fazer algo como

.addRequestHeader("Accept-Encoding","gzip,deflate");

Outras dicas

Se o tráfego de rede está indo através de HTTP, a maioria dos diversos servidores web / contentores servlet suporte para negociada fechando, por exemplo, mod_deflate para Apache.

Seu algoritmo de compressão depende do que a sua tentativa de otimizar e quanta largura de banda que você tem disponível.

Se você estiver em um gigibit LAN, quase qualquer algoritmo de compressão vai abrandar o seu programa para baixo um pouco. Se a sua conexão através de uma WAN ou internet, você pode dar ao luxo de fazer um pouco mais de compressão. Se você conectado a um dial-up, você deve comprimir tanto como ele absolutamente possível.

Se esta é uma WAN, você pode encontrar soluções de hardware como da Riverbed são mais eficazes, como eles trabalham através uma gama de tráfego, e não requerem quaisquer alterações ao software.

I tem um caso de teste que mostra a diferença de compressão relativo entre esvaziar, filtrada, BZip2 e lzma . Basta ligar uma amostra de seus dados, e testar o tempo entre duas máquinas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top