⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
基准测试套件

DuckDB 拥有广泛的基准测试套件。在进行可能影响性能的更改时,运行这些基准测试以检测潜在的性能退化非常重要。

入门

要构建基准测试套件,请在 DuckDB 仓库中运行以下命令

BUILD_BENCHMARK=1 CORE_EXTENSIONS='tpch' make

列出基准测试

要列出所有可用的基准测试,请运行

build/release/benchmark/benchmark_runner --list

运行基准测试

运行单个基准测试

要运行单个基准测试,请执行以下命令

build/release/benchmark/benchmark_runner benchmark/micro/nulls/no_nulls_addition.benchmark

输出将以 CSV 格式打印到 stdout,格式如下

name	run	timing
benchmark/micro/nulls/no_nulls_addition.benchmark	1	0.121234
benchmark/micro/nulls/no_nulls_addition.benchmark	2	0.121702
benchmark/micro/nulls/no_nulls_addition.benchmark	3	0.122948
benchmark/micro/nulls/no_nulls_addition.benchmark	4	0.122534
benchmark/micro/nulls/no_nulls_addition.benchmark	5	0.124102

您还可以使用 --out 标志指定输出文件。这将只将时间(以换行符分隔)写入该文件。

build/release/benchmark/benchmark_runner benchmark/micro/nulls/no_nulls_addition.benchmark --out=timings.out

输出将包含以下内容

0.182472
0.185027
0.184163
0.185281
0.182948

使用正则表达式运行多个基准测试

您还可以使用正则表达式来指定要运行哪些基准测试。请注意某些正则表达式字符(例如 * 可能会被您的 shell 展开)的 shell 展开,因此这需要适当的引用或转义。

build/release/benchmark/benchmark_runner "benchmark/micro/nulls/.*"

运行所有基准测试

不指定任何参数将运行所有基准测试。

build/release/benchmark/benchmark_runner

其他选项

--info 标志为您提供有关基准测试的一些其他信息。

build/release/benchmark/benchmark_runner benchmark/micro/nulls/no_nulls_addition.benchmark --info
display_name:NULL Addition (no nulls)
group:micro
subgroup:nulls

--query 标志将打印基准测试运行的查询。

SELECT min(i + 1) FROM integers;

--profile 标志将输出一个查询树。