There are a number of benchmarks in this repository that can be run using the cargo bench command. These behave more
or less how you'd expect.
There are also some binaries that are not run by default, but produce some reporting artifacts that can be useful for comparing vortex compression to parquet and debugging vortex compression performance. These are:
This binary compresses a file using vortex compression and writes the compressed file to disk where it can be examined or used for other operations.
This is the unified benchmark runner that supports multiple benchmark suites including TPC-H, ClickBench, and TPC-DS.
To run the TPC-H benchmarks you can use:
cargo run --bin query_bench -- tpchTo run the ClickBench benchmarks:
cargo run --bin query_bench -- clickbenchFor profiling, you can open in Instruments using the following invocation:
cargo instruments -p vortex-bench --bin query_bench --template Time --profile bench -- tpch
There is a data directory at vortex/vortex-bench/data where parquet and vortex files used for the benchmark runs
can be found.
If you don't want to use the default system allocator, there are "jemalloc" and "mimalloc" features available that
configure a different allocators at compile time.
As of this writing, if both are enabled mimalloc will be used.
If the benchmarks fail because of this error:
Failed to compress to parquet: No such file or directory (os error 2)
You likely do not have the required packages installed. On macOS, try this:
brew install duckdb cmake ninja pkg-config vcpkg