最近接了一个信创国产替代项目项目,测试了一把

配置如下:

CPU: Hygon C86 7285 32-core Processor

内存:三星 

操作系统:银河麒麟V10SP1 

内核版本:4.19.90-23.8

GCC : 7.3.0  

用的性能测试代码GitHub - jsnell/zlib-bench: Benchmark script for comparing different versions of zlib

升级了zlib的最新代码。主要对比zlib、cloudflare zlib和zlib-ng.GitHub - madler/zlib: A massively spiffy yet delicately unobtrusive compression library. 

commit: 0f51fb4933fc9ce18199cb2554dacea8033e7fd3

 GitHub - cloudflare/zlib: Cloudflare fork of zlib with massive performance improvements

commit:92530568d2c128b4432467b76a3b54d93d6350bd 

GitHub - zlib-ng/zlib-ng: zlib replacement with optimizations for "next generation" systems.

commit : 2e3e5f30a05ee7b113c755ad9a075304e02bc328

 因为海光CPU源自AMD Zen系列,所以可以加上如下参数编译, 记得要用perl的cpan安装一些依赖哦(或者从yum源里找)。

GCC 要保证gcc 支持znver1, 版本要新点

‘znver1’

AMD Family 17h core based CPUs with x86-64 instruction set support. (This supersets BMI, BMI2, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, and 64-bit instruction set extensions.)

export CFLAGS="-march=znver1"
export CXXFLAGS=${CFLAGS}

perl bench.pl --output-format=json --output-file=results.json 

压缩级别 1 3 5 6 9 (6是我临时加的,因为线上nginx用的6)

 测试结果如下:

结论:

zlib-ng > cloudflare > zlib

可以看到zlib-ng 简直是秒杀级别存在,执行时间非常短, 性能很高。cloudflare zlib性能也不错。

下一步测试下将zlib-ng集成到nginx的效果。

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐