문제

성능을 위해 응용 프로그램 네트워크 트래픽의 일부를 압축해야합니다. 나는 이것이 BZIP2와 같은 새로운 알고리즘에서 멀리 떨어져 있어야한다고 생각합니다.

도움이 되었습니까?

해결책

당신이 사용할 수있는 디플레이터/불화 JDK에 내장되어 있습니다. gzipinputstream 및 gzipoutputstream도 있지만 실제로는 정확한 사용에 달려 있습니다.

편집하다:

추가 의견 읽기 네트워크 태피가 HTTP 인 것처럼 보입니다. 서버에 따라 압축을 지원할 수 있습니다 (특히 Deflate/GZIP의 경우). 그런 다음 문제는 클라이언트에게됩니다. 클라이언트가 브라우저 인 경우 이미 지원할 수 있습니다. 클라이언트가 웹 서비스 클라이언트 또는 HTTP 클라이언트 해당 패키지의 문서를 확인하여 지원되는지 확인하십시오.

Jakarta-Commons httpclient는 압축을 수동으로 수행해야 할 것 같습니다. 클라이언트 쪽에서 이것을 활성화하려면 다음과 같은 작업을 수행해야합니다.

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

다른 팁

네트워크 트래픽이 HTTP를 극복하는 경우 대부분의 다양한 웹 서버/서블릿 컨테이너는 협상 된 지핑을 지원합니다 (예 : Apache 용 Mod_deflate).

압축 알고리즘은 최적화하려는 내용과 사용 가능한 대역폭의 양에 따라 다릅니다.

Gigibit Lan에 있다면 거의 모든 압축 알고리즘이 프로그램 속도를 약간 느리게 할 것입니다. WAN 또는 인터넷을 통해 연결하면 좀 더 압축 할 수 있습니다. 전화 접속에 연결되면 절대적으로 가능한 한 많이 압축해야합니다.

이것이 WAN이라면 다음과 같은 하드웨어 솔루션을 찾을 수 있습니다. 강바닥 다양한 트래픽에서 작업하고 소프트웨어를 변경할 필요가 없기 때문에 더 효과적입니다.

테스트 케이스가있어 상대 압축 차이를 보여줍니다. 디플레이트, 필터링, BZIP2 및 LZMA. 데이터 샘플을 연결하고 두 컴퓨터 사이의 타이밍을 테스트하기 만하면됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top