`
mingren135
  • 浏览: 72461 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java自带压缩方式的性能比较

    博客分类:
  • JAVA
 
阅读更多

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各种方式压缩图片

    以上就是Java中压缩图片的几种常见方法,可以根据项目需求和性能考虑选择合适的方式。在实际应用中,除了调整尺寸,还可以通过设置JPEG的压缩质量来进一步减小文件大小。例如,`ImageIO.write()`方法的第三个参数...

    JAVA 文件压缩及加密

    1. 使用Java自带的压缩库:Java标准库提供了`java.util.zip`包,它包含了对GZIP和ZIP格式的支持。例如,可以使用`GZIPOutputStream`对单个文件进行GZIP压缩,或使用`ZipOutputStream`将多个文件打包成ZIP压缩包。 `...

    JAVA源码JAVA文件压缩与解压缩实践(源代码+论文)

    除了Java自带的标准库之外,还可以考虑使用如Apache Commons Compress这样的第三方库来实现更多的压缩格式(如Gzip、Bzip2等)以及更复杂的压缩需求。 #### 4. 压缩与解压缩实践 在实践中,通常会结合Java标准库和...

    java 解压缩 和 压缩 文件

    虽然Java自带的API已经足够处理大部分压缩和解压缩任务,但某些情况下,第三方库如Apache Commons Compress和Google's Guava提供更高级的功能和更好的性能。 总的来说,Java中的文件压缩和解压缩涉及到`java.util....

    Java压缩图片工具

    1. **ImageIO**:Java自带的图像I/O库,虽然功能相对基础,但可以用于读取、写入和转换多种图像格式,包括JPEG和PNG。通过调整JPEG的品质因子,可以在一定程度上控制压缩程度。 2. **Sanselan**:Apache Commons的...

    几种序列化的实现方法 java自带, Writable, Avro

    在Java和其他编程语言中,有多种序列化实现方法,包括Java自带的序列化、Writable接口(常见于Hadoop生态系统)以及Avro。下面将详细介绍这三种序列化方式。 1. **Java自带的序列化** Java内置的序列化机制是通过...

    图片上传组件(自带图片压缩)

    在实际开发中,可能会结合多种压缩方法,根据业务需求和性能考虑选择合适的策略。此外,图片压缩还可能涉及到图片格式转换,比如将大尺寸的原始图片转换为适合网络传输的WebP或JPEG格式。 总结来说,这个“图片上传...

    Java必备工具包

    Java必备工具包是一个集合了多个对Java学习至关重要的资源的压缩文件。这个包包含了各种工具和文档,旨在帮助Java开发者和学习者提升他们的技能和理解。让我们逐一解析这些包含的文件,看看它们提供了哪些关键知识点...

    java做的压缩解压文件

    本篇文章将深入探讨如何使用Apache Commons Compress库以及Java自带的Java.util.zip包来实现文件的压缩和解压功能。 首先,让我们了解Java中的基础压缩和解压机制。Java标准库提供了`java.util.zip`包,该包包含了...

    JDK11 windows zip 解压缩版

    JDK11 Windows Zip解压缩版是开发者在Windows环境下快速启动Java开发的便捷方式。其带来的新特性和改进对于提升开发效率和代码质量都有显著帮助。通过简单的解压和环境变量配置,开发者就能轻松地在Windows系统上...

    EhCache开启gzip压缩功能

    EhCache是一款流行的Java缓存系统,用于提升应用程序性能,减少数据库访问压力。在Web应用中,开启gzip压缩功能能够显著减小数据传输量,从而加快网页加载速度,降低服务器带宽消耗。以下是对EhCache开启gzip压缩...

    java开源包6

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包9

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包4

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包101

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包5

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包8

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java api 1.8 chm 文档

    7. **并发改进**:Java 8对并发API进行了增强,如`ForkJoinPool`和`Parallel Streams`,提高了并行计算的性能。 要访问这个CHM文件,你需要一个支持CHM格式的阅读器。通常,Windows系统自带的CHM阅读器可以直接打开...

    java开源包10

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

Global site tag (gtag.js) - Google Analytics