Java常用的压缩方式是gzip,它的性能比另外一种zip压缩方式好多少呢,抽空写了个程序来验证一下
分别用以下长度的字节字符串进行压缩比较
int[] intArr = { 1, 10, 50, 100, 200, 300, 500, 700, 900, 1000, 2000, 5000, 10000, 100000, 1000000 };
测试结果如下
// 压缩大小分析 origin=1,gzip=21,zip=123 origin=10,gzip=30,zip=132 origin=50,gzip=70,zip=172 origin=100,gzip=119,zip=221 origin=200,gzip=194,zip=296 origin=300,gzip=269,zip=371 origin=500,gzip=420,zip=522 origin=700,gzip=568,zip=670 origin=900,gzip=719,zip=821 origin=1000,gzip=790,zip=892 origin=2000,gzip=1535,zip=1637 origin=5000,gzip=3787,zip=3889 origin=10000,gzip=7540,zip=7642 origin=100000,gzip=75205,zip=75307 origin=1000000,gzip=752046,zip=752148
// 压缩率分析 origin=1,gzip=2100.00%,zip=12300.00% origin=10,gzip=300.00%,zip=1320.00% origin=50,gzip=140.00%,zip=344.00% origin=100,gzip=119.00%,zip=221.00% origin=200,gzip=97.00%,zip=148.00% origin=300,gzip=89.67%,zip=123.67% origin=500,gzip=84.00%,zip=104.40% origin=700,gzip=81.14%,zip=95.71% origin=900,gzip=79.89%,zip=91.22% origin=1000,gzip=79.00%,zip=89.20% origin=2000,gzip=76.75%,zip=81.85% origin=5000,gzip=75.74%,zip=77.78% origin=10000,gzip=75.40%,zip=76.42% origin=100000,gzip=75.21%,zip=75.31% origin=1000000,gzip=75.20%,zip=75.21%
// 压缩时间分析 origin=1,gzip=58ms,zip=2ms origin=10,gzip=0ms,zip=0ms origin=50,gzip=0ms,zip=0ms origin=100,gzip=1ms,zip=0ms origin=200,gzip=0ms,zip=0ms origin=300,gzip=0ms,zip=1ms origin=500,gzip=0ms,zip=0ms origin=700,gzip=0ms,zip=1ms origin=900,gzip=0ms,zip=0ms origin=1000,gzip=0ms,zip=1ms origin=2000,gzip=0ms,zip=0ms origin=5000,gzip=1ms,zip=0ms origin=10000,gzip=1ms,zip=0ms origin=100000,gzip=5ms,zip=5ms origin=1000000,gzip=52ms,zip=55ms
分析与结论
1)内容字节数偏小时,不适合进行压缩,压缩内容反而会更大
2)gzip压缩率大于zip,随着字节数增大,zip压缩率趋近与gzip
3)gzip与zip压缩时间差别不大
因此实际使用中大都采用gzip
相关推荐
以上就是Java中压缩图片的几种常见方法,可以根据项目需求和性能考虑选择合适的方式。在实际应用中,除了调整尺寸,还可以通过设置JPEG的压缩质量来进一步减小文件大小。例如,`ImageIO.write()`方法的第三个参数...
1. 使用Java自带的压缩库:Java标准库提供了`java.util.zip`包,它包含了对GZIP和ZIP格式的支持。例如,可以使用`GZIPOutputStream`对单个文件进行GZIP压缩,或使用`ZipOutputStream`将多个文件打包成ZIP压缩包。 `...
除了Java自带的标准库之外,还可以考虑使用如Apache Commons Compress这样的第三方库来实现更多的压缩格式(如Gzip、Bzip2等)以及更复杂的压缩需求。 #### 4. 压缩与解压缩实践 在实践中,通常会结合Java标准库和...
虽然Java自带的API已经足够处理大部分压缩和解压缩任务,但某些情况下,第三方库如Apache Commons Compress和Google's Guava提供更高级的功能和更好的性能。 总的来说,Java中的文件压缩和解压缩涉及到`java.util....
1. **ImageIO**:Java自带的图像I/O库,虽然功能相对基础,但可以用于读取、写入和转换多种图像格式,包括JPEG和PNG。通过调整JPEG的品质因子,可以在一定程度上控制压缩程度。 2. **Sanselan**:Apache Commons的...
在Java和其他编程语言中,有多种序列化实现方法,包括Java自带的序列化、Writable接口(常见于Hadoop生态系统)以及Avro。下面将详细介绍这三种序列化方式。 1. **Java自带的序列化** Java内置的序列化机制是通过...
在实际开发中,可能会结合多种压缩方法,根据业务需求和性能考虑选择合适的策略。此外,图片压缩还可能涉及到图片格式转换,比如将大尺寸的原始图片转换为适合网络传输的WebP或JPEG格式。 总结来说,这个“图片上传...
Java必备工具包是一个集合了多个对Java学习至关重要的资源的压缩文件。这个包包含了各种工具和文档,旨在帮助Java开发者和学习者提升他们的技能和理解。让我们逐一解析这些包含的文件,看看它们提供了哪些关键知识点...
本篇文章将深入探讨如何使用Apache Commons Compress库以及Java自带的Java.util.zip包来实现文件的压缩和解压功能。 首先,让我们了解Java中的基础压缩和解压机制。Java标准库提供了`java.util.zip`包,该包包含了...
JDK11 Windows Zip解压缩版是开发者在Windows环境下快速启动Java开发的便捷方式。其带来的新特性和改进对于提升开发效率和代码质量都有显著帮助。通过简单的解压和环境变量配置,开发者就能轻松地在Windows系统上...
EhCache是一款流行的Java缓存系统,用于提升应用程序性能,减少数据库访问压力。在Web应用中,开启gzip压缩功能能够显著减小数据传输量,从而加快网页加载速度,降低服务器带宽消耗。以下是对EhCache开启gzip压缩...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
7. **并发改进**:Java 8对并发API进行了增强,如`ForkJoinPool`和`Parallel Streams`,提高了并行计算的性能。 要访问这个CHM文件,你需要一个支持CHM格式的阅读器。通常,Windows系统自带的CHM阅读器可以直接打开...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...