Snappy

高速压缩解压缩开发包
授权协议 BSD
开发语言 C/C++
所属分类 应用工具、 压缩、解压缩
软件类型 开源软件
地区 不详
投 递 者 司徒泰
操作系统 跨平台
开源组织 Google
适用人群 未知
 软件概览

Snappy是一个压缩/解压缩库。它不旨在最大程度地压缩,也不旨在与任何其他压缩库兼容。相反,它的目标是非常高的速度和合理的压缩。例如,与zlib的最快模式相比,Snappy对于大多数输入而言要快一个数量级,但是生成的压缩文件要大20%至100%。(有关更多信息,请参见下面的“性能”。)

Snappy具有以下属性:

  • 快速:压缩速度达到250 MB /秒及以上,无需汇编代码。请参阅下面的“性能”。
  • 稳定:在过去的几年中,Snappy已在Google的生产环境中压缩和解压缩了PB级的数据。Snappy位流格式是稳定的,不会在版本之间更改。
  • 稳健:Snappy解压缩器的设计不会在遭到损坏或恶意输入时崩溃。
  • 免费和开源软件:Snappy已获得BSD类型许可证的许可。有关更多信息,请参见随附的COPYING文件。

Snappy在某些Google演示文稿等中以前被称为“ Zippy”。

性能

Snappy的目的是要快。在64位模式的Core i7处理器的单核上,它以约250 MB / sec或更高的速度压缩,并以约500 MB / sec或更高的速度解压缩。(这些数字是我们基准测试套件中输入速度最慢的数字;其他数字则更快。)在我们的测试中,Snappy通常比同级别的算法(例如LZO,LZF,QuickLZ等)更快,同时可以达到可比的压缩比。

对于纯文本,典型的压缩率(基于基准套件)约为1.5-1.7倍,对于HTML约为2-4倍,对于JPEG,PNG和其他已经压缩的数据当然为1.0倍。zlib最快模式下的相似数字分别为2.6-2.8倍,3-7倍和1.0倍。尽管通常以速度为代价,但是更复杂的算法能够实现更高的压缩率。当然,压缩比将随着输入而显着变化。

尽管Snappy应该相当轻便,但它主要针对64位x86兼容处理器进行了优化,并且在其他环境中运行速度可能较慢。特别是:

  • Snappy在多个地方使用64位操作来一次处理更多的数据。
  • Snappy假定未对齐的32位和64位负载,并且存储很便宜。在某些平台上,必须使用单字节加载和存储来模拟它们,这要慢得多。
  • Snappy始终假定为低端字节序,如果在大端字节序平台上运行,则需要在多个位置进行字节交换数据。

经验表明,即使是经过大量调优的代码也可以得到改进。无论是针对64位x86还是其他平台的性能优化,当然都是最受欢迎的。请参阅下面的“联系”。

示例代码:

snappy::Compress(input.data(), input.size(), &output);

 

  • 前言 Hive中对中间数据或最终数据都会做压缩处理,以提高吞吐量和性能。 通常压缩比高的占用空间小,但解压缩慢,反之亦然,常用的压缩格式有:GZIP、BZIP2、Snappy 压缩方式 压缩后大小 压缩速度 是否可分隔 GZIP 中 中 否 BZIP2 小 慢 是 Snappy 大 快 是 Snappy因为解压缩速度很快,并且可以进行分隔,是大数据存储中最常用的压缩方式。 起因 今天跑批处理的时候

 相关资料
  • tar [-]c|x|u|r|t[z|j][v] -f 归档文件 [待打包文件] 将多个文件打包为一个归档文件,可以在打包的同时进行压缩。支持的格式为 tar(归档)、gz(压缩)、bz2(压缩率更高,比较耗时) 操作选项 -c 创建 -x 解包 -u 更新 -r 添加 -t 查看 -d 比较压缩包内文件和文件 -A 将 tar 文件添加到归档文件中 格式选项 -z 使用 gz 压缩格式 -j 使

  • 问题内容: 我知道这是一项容易的任务,但是更改代码后它停止工作,并且无法恢复!我实际上使用了两个函数来进行压缩和解压缩,尽管实际上它是“ jar”和“ unjar”,但这并没有太大的区别 任何帮助/建议吗? 创建JarFile时发生错误: 问题答案: 我不知道这是否是您的问题,但是通常最好在完成写入后关闭每个zip条目。 请参阅。 在显示的代码中,不会关闭邮政编码中的最后一个条目。您也不会显示关闭

  • 我使用LZMA SDK在Windows7(64位)下进行文件压缩/解压缩(LZMA是7-zip中使用的默认算法)。 sdk可以在这里找到(源代码)http://7-zip.org/sdk.html 以加快闪烁过程。我想做增量压缩来分离文件,以获得更小的大小。然而,我想用增量解压缩来解压缩文件,这样第一部分被解压缩,而其他部分来自can总线。 所以在MCU部分,我想要能够一个部分一个部分的解压和闪存

  • 我正在使用Julia的ZipFile包来提取和处理csv文件。没问题,但是当我遇到zip文件中的zip文件时,我也想处理它,但是遇到了一个错误。 Julia ZipFile文档如下:https://zipfilejl.readthedocs.io/en/latest/ 对如何做到这一点有什么想法吗?

  • 主要内容:1. 压缩和解压缩介绍,2. 启用压缩,3. 启用解压缩,4. 发送压缩文件本节介绍如何配置响应的压缩或解压缩以及发送压缩文件。 在这篇文章中,涉及内容如下 - 压缩和解压缩介绍 启用压缩 启用解压缩 发送压缩文件 1. 压缩和解压缩介绍 压缩响应通常会显着减少传输数据的大小。 然而,由于压缩在运行时发生,它还可以增加相当大的处理开销,这会对性能产生负面影响 在向客户端发送响应之前,NGINX会执行压缩,但不会“压缩”已压缩的响应(例如,由代理的服务器)。 2. 启用压缩

  • 问题内容: 我正在使用php的功能来执行HTTP请求。为了节省带宽,我决定使用添加标题。 显然,输出一个gzip编码的字符串,所以我用来解码该编码的字符串,但是将作为参数传递的数据出错。 我知道还有另一个功能可以解压缩压缩后的数据,但是它不包含在我的PHP版本中(也许仅在SVN上可用)。 我知道cUrl可以即时解码gzip流(没有任何问题),但是有人建议我使用它而不是cUrl。 您是否知道以其他方

  • 常用压缩包—解压—令整理 Linux 后缀为 .war 格式的文件(一般用在部署 Tomcat 项目的时候) 命令:unzip -oq XXXXXX.war -d ROOT 如果没有 ROOT 目录会自动创建 ROOT 目录。 Linux 后缀为 .tar.gz 格式的文件-解压 命令:tar zxvf XXXXXX.tar.gz Linux 后缀为 .bz2 格式的文件-解压 命令:bzip2

  • 问题内容: 我想使用Java代码将文件压缩为zip,rar和7z格式。我也想在指定位置解压缩这些文件。谁能告诉我如何在Java中使用7-zip压缩和解压缩文件? 问题答案: 我用过:sevenzipjbinding.jar sevenzipjbinding-Allplatforms.jar 我现在可以使用这些jar解压缩文件。 尝试使用此链接进行解压缩:http : //sourceforge.n