ClickHouse表达式JIT性能测试
测试日期:20181023
对ClickHouse最新稳定版的表达式JIT优化做了验证测试,结果如下:
一. 测试环境
CH从18年9月初,新增表达式JIT优化。新版CH对编译环境要求高,使用JIT需要使用clang编译器,llvm版本>=6.0。
网上下载的RPM包不支持JIT,因此需要自己源码编译。编译依赖包较多,所以董兴在自己的笔记本上编译的。
受测试条件限制,使用TPC-H 10s数据量测试。
二. 测试结果
- 对TPC-H q01几乎无影响。
- CH官方测试用例(有改写,见第三节)有效果,该用例使用很多函数计算。
测试时间比较稳定,官方用例能够反映JIT效果。以下测试查询线程参数(maxthread)设置为1,maxthread其它取值,效果类似。
三. CH官方测试方法
按照CH官方文档的意思,测试方法据推测应该是这样的:
对以下SQL反复执行5000次,统计执行时间,即多次小查询性能。
- snippet.sql
WITH bitXor(NUMBER,0xCF2D2BAAE6DA887) AS x0, bitXor(x0, bitShiftRight(x0, 33)) AS x1, x1 * 0xff51afd7ed558ccd AS x2, bitXor(x2, bitShiftRight(x2, 33)) AS x3, x3 * 0xc4eb9e1a85ec53 AS x4, bitXor(x4, bitShiftRight(x4, 33)) AS x5 SELECT x5, intHash64(NUMBER) FROM system.number LIMIT 10 SETTINGS compile_expressions = 1;
打赏作者以资鼓励: