当前位置:  开发笔记 > 编程语言 > 正文

是否有像Xceed Real-Time Zip一样实时压缩的免费压缩工具?

如何解决《是否有像XceedReal-TimeZip一样实时压缩的免费压缩工具?》经验,为你挑选了1个好方法。

我需要做的是压缩文件的64KB块,因为它们是从外部服务进来的,然后实时地将这一块压缩数据流式传输到浏览器.Xceed Real-Time非常棒,您可以设置文件的标头,然后将多个64KB块拼凑成客户端上的整个压缩文件.这很好用,您可以通过将其放在循环中轻松处理多个文件.

我的问题是:是否有一个免费的替代压缩实用程序,可以匹配Xceed的复杂性?我需要能够压缩文件并将文件的一部分流式传输到浏览器的东西.几乎所有我见过的免费替代方案都需要在压缩发生之前访问整个文件.Xceed很棒,但价格昂贵.只是想知道是否有一个可以实现这一目标的免费替代品.谢谢!



1> Renat Gilman..:

您正在寻找的是流压缩方法.好消息是你有很多选择.还请注意你必须考虑内存,因为一些解决方案(基于字典)可能需要大量内存,所以测试和调整.

为了保持我的答案简短,我建议尝试一下LZ4.

LZ4 - http://code.google.com/p/lz4/

LZ4是一种非常快速的无损压缩算法,每个内核的压缩速度为300 MB/s,可通过多核CPU进行扩展.它还具有极快的解码器,每个核心的速度为GB/s,通常达到多核系统的RAM速度限制.

基准测试:

Name            Ratio  C.speed D.speed
                        MB/s    MB/s
LZ4 (r97)       2.084    410    1810
LZO 2.06        2.106    409     600
QuickLZ 1.5.1b6 2.237    373     420
Snappy 1.1.0    2.091    323    1070
LZF             2.077    270     570
zlib 1.2.8 -1   2.730     65     280
LZ4 HC (r97)    2.720     25    2040
zlib 1.2.8 -6   3.099     21     300

有很多可用的实现,请检查:http://code.google.com/p/lz4/

C# - https://github.com/stangelandcl/LZ4Sharp

LZO - http://lzo-net.sourceforge.net/

LZO.Net将Markus"FXJ"Oberhumer强大的LZO压缩库(V1.08)的强大功能带到.Net.它使用一个小的C#类包装对本机DLL的访问,保持ANSI-C库的原始速度.

Snappy - https://code.google.com/p/snappy/

Snappy是一个压缩/解压缩库.它的目标不是最大压缩,也不与任何其他压缩库兼容; 相反,它的目标是非常高的速度和合理的压缩.

有两种C#原生实现:

SnappySharp - https://github.com/Kintaro/SnappySharp

Snappy.Sharp - https://github.com/jeffesp/Snappy.Sharp

QuickLZ - http://www.quicklz.com/

QuickLZ是世界上速度最快的压缩库,每个核心达到308 Mbyte/s.它可以在商业许可下使用,如果已经获得或在GPL 1,2或3下使用,其中任何公开发布的内容必须是开源的.

本机实现 - QuickLZ C#

So far, only a subset of the library has been ported, 
namely the setting:

QLZ_COMPRESSION_LEVEL = 1 or 3 
QLZ_STREAMING_BUFFER = 0 
QLZ_MEMORY_SAFE = 0

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有