测试日期:20181023 对ClickHouse最新稳定版的表达式JIT优化做了验证测试,结果如下: # 一. 测试环境 CH从18年9月初,新增表达式JIT优化。新版CH对编译环境要求高,使用JIT需要使用clang编译器,llvm版本>=6.0。\\ 网上下载的RPM包不支持JIT,因此需要自己源码编译。编译依赖包较多,所以董兴在自己的笔记本上编译的。\\ 受测试条件限制,使用TPC-H 10s数据量测试。 # 二. 测试结果 - 对TPC-H q01几乎无影响。 - CH官方测试用例(有改写,见第三节)有效果,该用例使用很多函数计算。 测试时间比较稳定,官方用例能够反映JIT效果。以下测试查询线程参数(max_thread)设置为1,max_thread其它取值,效果类似。 ![](../../../../../ff_internal_upload/img/2018/clickhouse_jit_test_20181023.png) # 三. CH官方测试方法 按照CH官方文档的意思,测试方法据推测应该是这样的: 对以下SQL反复执行5000次,统计执行时间,即多次小查询性能。 ```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; ```