FAIRYFAR-INTERNAL
 
  FAIRYFAR-INTERNAL  |  SITEMAP  |  ABOUT-ME  |  HOME  
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;


打赏作者以资鼓励:
移动端扫码阅读: