Skip to content

Latest commit

 

History

History
52 lines (39 loc) · 1.58 KB

microbenchmarks.md

File metadata and controls

52 lines (39 loc) · 1.58 KB

Micro Benchmarks

We have micro benchmarks for various components such as storage, stream and batch executors.

Running Micro Benchmarks

You can run them by specifying their name. For instance to run json_parser micro benchmark:

cargo bench json_parser

Generating Flamegraph for Micro Benchmarks

Note: Flamegraph generation depends on perf. You will need a linux box to run it.

  1. Install cargo-flamegraph

    cargo install flamegraph
  2. Install perf. If on ubuntu:

    sudo apt install linux-tools

    If using EC2, you may need this instead:

    sudo apt install linux-tools-aws

    On an EC2 instance you may also need to set paranoid level to 1, to give the profiler necessary permissions.

    sudo sh -c  "echo 1 >/proc/sys/kernel/perf_event_paranoid"
  3. Run flamegraph + benchmark (change json_parser to whichever benchmark you want to run.)

    cargo flamegraph --bench json_parser -- --bench

    Within a benchmark, there are also typically multiple benchmark groups. For instance, within the json_parser bench, there's json_parser, debezium_json_parser_(create/read/update/delete) To filter you can just append a regex. For instance to only bench json_parser:

    cargo flamegraph --bench json_parser -- --bench ^json_parser

    You can take a look at Criterion Docs for more information.