LZ4 Java
고속 압축 알고리즘. JNI 버전이 2014현재 최고 성능을 보이는 것으로 나타남.
LZ4 Native
LZ4-Java
-
http://mvnrepository.com/artifact/net.jpountz.lz4/lz4
lz4-java 사용시 주의점
LZ4Factory
를 비롯한 객체들은 한 번만 생성해서 공유해서 사용한다. singleton / thread safe함. 그렇지 않으면 성능이 매우 저하된다.
LZ4Factory#nativeInstance()
의 javadoc 을 잘 읽어야 한다. native instance 는 fastDecompress 가 safeDecompress 보다 오히려 더 느리다.(1.6 이상 버전 기준)
압축해서 저장할 때 압축을 안한 상태의 용량을 맨 앞 4byte 정도에 할당해서 저장해두면, 압축을 풀때 풀린 용량을 정확히 알기 때문에 fastDecompress 를 할 수 있게 된다.
safeDecompress 는 정확히 압축 푼 용량을 모를 때 사용하며, 이 경우에는 버퍼를 문제 안생길만큼 아주 충분히 잡아서 줘야 한다.