文档首页 > > 移植指南> 移植Snappy

移植Snappy

分享
更新时间:2020/06/03 GMT+08:00

介绍

简要介绍

Snappy是一个C++的用来压缩和解压缩的开发包。其目标不是最大限度压缩或者兼容其他压缩格式,而是旨在提供高速压缩速度和合理的压缩率。Snappy比zlib更快,但文件相对要大20%到100%。在 64位模式的Core i7处理器上,可达每秒250兆~500兆的压缩速度。

语言:C/C++

一句话描述:高效的解压和压缩开发包

开源协议:BSD

建议的版本

建议使用版本为“snappy-1.1.7”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.large.2 | 2vCPUs | 4GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

说明

下载地址

CentOS

7.6

在公共镜像中已提供。

Kernel

4.14.0-115

在公共镜像中已提供。

配置编译环境

安装wget和cmake工具。

yum install cmake3 wget -y

获取源码

获取“snappy-1.1.7”源码包。

cd /usr/local/src

wget https://github.com/google/snappy/archive/1.1.7.tar.gz

编译和安装

  1. 解压软件包。

    cd /usr/local/src

    tar -zxvf 1.1.7.tar.gz

  2. 进入Snappy的安装目录。

    cd snappy-1.1.7/

  3. 安装Snappy。

    cmake3 -G "Unix Makefiles" ./

    make && make install

运行和验证

  1. 创建测试源文件。

    cd /usr/local/src

    vi test_snappy.c

    “test_snappy.c”插入如下内容:

    #include "snappy.h"
    #include <string>
    #include <iostream>
    int main() {
    std::string s = "akwdksakldhasjkjhkjkd;asjkdhasjkdjkasdghj;wqejhjwjksdkf;asdkjh";
    std::string d;
    snappy::Compress(s.data(), s.size(), &d);
    std::cout<<d<<std::endl;
    std::cout<<s.size()<<" "<<d.size()<<std::endl;
    return 0;
    }

  2. 编译和运行测试文件。

    因为Snappy编译生成的是一个静态库,所以需要由静态库来编译“test_snappy.c”

    g++ test_snappy.c /usr/local/lib64/libsnappy.a -o test

    ./test

    输出如下:表明字符串从62个字节压缩到59个字节。

    [root@ecs-snappy-x src]# ./test 
    >Pddsandslkadnsldsan;lf;lkal;fHfsjk;lfsna;lfdskfsa
    62 59

    Snappy是由c++代码编写,所以最好采用g++编译,如果未安装g++,可以通过yum install gcc-c++ -y安装。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问