我广泛使用 zlib 来存储压缩数据。在读取数据时,大部分时间都花在了 inflate_fast 和 crc32 zlib 调用上。我正在探索加速解压的替代方案,有两个候选方案,来自 Intel 的 ipp_zlib 和来自 CloudFlare 的 zlib fork。我想知道:
CloudFlare fork 是否仅针对 AMD 处理器进行了调整?我看到相关分支在https://github.com/cloudflare/zlib/branches上标有“amd64” 。我有 Intel CPU,所以 amd64 无法达到目的。
我是否需要重写数据才能使用CloudFlare版本?如果是,那么我将不得不忽略这个库。
我尝试为我的 Linux 机器获取这两个库,但没有看到简单的方法,即下载链接。如果有人在上面安装过,请分享下载和构建的说明。
CloudFlare 和 Kukunas 版本的 ZLIB 都无法帮助加快解压速度。它们都调整为更快的压缩,即放气。对于压缩来说它们很好。“inflate”源代码保持不变。
不过,它们必须是专门建造的。我只能使用 Intel 编译器在 Linux 上构建 64 位模式的它们
$ export CFLAGS="-D__PCLMUL__ -D__SSE4_2__"
$ ./configure
$ make # (or, $ make shared)
Run Code Online (Sandbox Code Playgroud)
命令。并且CPU应该具有SSE4.2+架构。英特尔或者AMD,随便吧。
虽然 CFLAGS='-msse4.2 -mpclmul -O3' 可能也适用于 GCC 编译器,但尚未检查。