|
@@ -0,0 +1,143 @@
|
|
|
|
+package com.tzld.piaoquan.recommend.feature.produce.util;
|
|
|
|
+
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
|
+import net.jpountz.lz4.*;
|
|
|
|
+import org.xerial.snappy.Snappy;
|
|
|
|
+
|
|
|
|
+import java.io.ByteArrayOutputStream;
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.nio.ByteBuffer;
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
|
+import java.util.Base64;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @author dyp
|
|
|
|
+ */
|
|
|
|
+public class CompressionUtil {
|
|
|
|
+ public static String lz4Compress(String input) {
|
|
|
|
+ byte[] data = input.getBytes(StandardCharsets.UTF_8);
|
|
|
|
+ LZ4Factory factory = LZ4Factory.fastestInstance();
|
|
|
|
+ LZ4Compressor compressor = factory.fastCompressor();
|
|
|
|
+ int maxCompressedLength = compressor.maxCompressedLength(data.length);
|
|
|
|
+ byte[] compressed = new byte[maxCompressedLength];
|
|
|
|
+ int compressedLength = compressor.compress(data, 0, data.length, compressed, 0, maxCompressedLength);
|
|
|
|
+ byte[] result = new byte[compressedLength];
|
|
|
|
+ System.arraycopy(compressed, 0, result, 0, compressedLength);
|
|
|
|
+ return Base64.getEncoder().encodeToString(result);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static String lz4Decompress(String input) {
|
|
|
|
+ // 将Base64编码的字符串解码为字节数组
|
|
|
|
+ byte[] data = Base64.getDecoder().decode(input);
|
|
|
|
+ LZ4Factory factory = LZ4Factory.fastestInstance();
|
|
|
|
+ LZ4SafeDecompressor decompressor = factory.safeDecompressor();
|
|
|
|
+
|
|
|
|
+ // 创建一个缓冲区来存储解压缩后的数据
|
|
|
|
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
|
|
|
+
|
|
|
|
+ // 使用ByteBuffer来处理压缩数据
|
|
|
|
+ ByteBuffer buffer = ByteBuffer.wrap(data);
|
|
|
|
+
|
|
|
|
+ // 假设每次读取的块大小为4KB(可以根据实际情况调整)
|
|
|
|
+ byte[] chunk = new byte[4096];
|
|
|
|
+ byte[] decompressedChunk = new byte[4096 * 2]; // 解压缩后的块可能会更大
|
|
|
|
+
|
|
|
|
+ while (buffer.hasRemaining()) {
|
|
|
|
+ int remaining = Math.min(buffer.remaining(), chunk.length);
|
|
|
|
+ buffer.get(chunk, 0, remaining);
|
|
|
|
+
|
|
|
|
+ // 解压缩当前块
|
|
|
|
+ int decompressedLength = decompressor.decompress(chunk, 0, remaining, decompressedChunk, 0);
|
|
|
|
+
|
|
|
|
+ // 将解压缩后的数据写入输出流
|
|
|
|
+ outputStream.write(decompressedChunk, 0, decompressedLength);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 返回解压后的数据
|
|
|
|
+ return new String(outputStream.toByteArray(), StandardCharsets.UTF_8);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static String snappyCompress(String input) throws IOException {
|
|
|
|
+ byte[] inputBytes = input.getBytes(StandardCharsets.UTF_8);
|
|
|
|
+ byte[] compressedBytes = Snappy.compress(inputBytes);
|
|
|
|
+ return Base64.getEncoder().encodeToString(compressedBytes);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 将Snappy压缩后的String解压缩回String
|
|
|
|
+ public static String snappyDecompress(String compressedInput) throws IOException {
|
|
|
|
+ byte[] compressedBytes = Base64.getDecoder().decode(compressedInput);
|
|
|
|
+ byte[] decompressedBytes = Snappy.uncompress(compressedBytes);
|
|
|
|
+ return new String(decompressedBytes, StandardCharsets.UTF_8);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static void main(String[] args) {
|
|
|
|
+ List<String> lz4Strs = Lists.newArrayList(
|
|
|
|
+ "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"
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ List<String> snappyStrs = Lists.newArrayList(
|
|
|
|
+ "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"
|
|
|
|
+ );
|
|
|
|
+ testSnappyDecompress(snappyStrs, 1);
|
|
|
|
+// testSnappyDecompress(snappyStrs, 10);
|
|
|
|
+// testSnappyDecompress(snappyStrs, 100);
|
|
|
|
+// testSnappyDecompress(snappyStrs, 1000);
|
|
|
|
+// testSnappyDecompress(snappyStrs, 10000);
|
|
|
|
+
|
|
|
|
+// testLz4Decompress(lz4Strs, 1);
|
|
|
|
+// testLz4Decompress(lz4Strs, 10);
|
|
|
|
+// testLz4Decompress(lz4Strs, 100);
|
|
|
|
+// testLz4Decompress(lz4Strs, 1000);
|
|
|
|
+// testLz4Decompress(lz4Strs, 10000);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private static void testSnappyDecompress(List<String> strs, int num) {
|
|
|
|
+ try {
|
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
|
+ for (int i = num; i > 0; i--) {
|
|
|
|
+ for (String str : strs) {
|
|
|
|
+ System.out.println(CompressionUtil.snappyDecompress(str));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ System.out.println(num + " : snappy decompress cost: " + (System.currentTimeMillis() - startTime) + "ms");
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private static void testLz4Decompress(List<String> strs, int num) {
|
|
|
|
+ try {
|
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
|
+ for (int i = num; i > 0; i--) {
|
|
|
|
+ for (String str : strs) {
|
|
|
|
+ CompressionUtil.lz4Decompress(str);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ System.out.println(num + " : lz4 decompress cost: " + (System.currentTimeMillis() - startTime) + "ms");
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|