⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
Benchmark Suite

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

Getting Started

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

BUILD_BENCHMARK=1 CORE_EXTENSIONS='tpch' make

Listing Benchmarks

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

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 标志将输出查询树。