海光CPU测试zlib性能对比
可以看到cloudflare zlib性能还是很高的,编译nginx时就可以使用cloudflare zlib了。升级了zlib的最新代码。主要对比zlib和cloudflare zlib.因为海光CPU源自AMD Zen系列,所以可以加上如下参数编译。最近接了一个国产替代项目项目,测试了一把。
最近接了一个信创国产替代项目项目,测试了一把
配置如下:
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的效果。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)