HarfBuzz text shaping engine http://harfbuzz.github.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Garret Rieger d1bf6c0c26 [subset] only preprocess in benchmark when experimental api is enabled. 2 years ago
..
fonts [perf] Make subset benchmark data driven. 3 years ago
texts [benchmark-shape] Remove a few tests 2 years ago
Makefile.am [perf] Add benchmark-ot 3 years ago
README.md [perf] Update README 2 years ago
benchmark-font.cc [benchmark-font] Disable quadratic callback 2 years ago
benchmark-map.cc Include cassert to fix bots 2 years ago
benchmark-ot.cc [perf/benchmark-ot] Add zh-hans 3 years ago
benchmark-set.cc [benchmark-set] Another Pause/Resume 2 years ago
benchmark-shape.cc [benchmark-shape,hb-shape-threads] Fix argument parsing order 2 years ago
benchmark-subset.cc [subset] only preprocess in benchmark when experimental api is enabled. 2 years ago
meson.build [perf/benchmark-shape] Test ft font backend as well 3 years ago
run.sh Merge pull request #2733 from astiob/buffer-context-doc 4 years ago

README.md

Building and Running

Benchmarks are implemented using Google Benchmark.

To build the benchmarks in this directory you need to set the benchmark option while configuring the build with meson:

meson build -Dbenchmark=enabled --buildtype=release

or:

meson build -Dbenchmark=enabled --buildtype=debugoptimized

Then build a specific benchmark binaries with ninja:

ninja -Cbuild perf/benchmark-set

or just build the whole project:

ninja -Cbuild

Finally, to run one of the benchmarks:

./build/perf/benchmark-set

It's possible to filter the benchmarks being run and customize the output via flags to the benchmark binary. See the Google Benchmark User Guide for more details.

Profiling

Configure the build to include debug information for profiling:

CXXFLAGS="-fno-omit-frame-pointer" meson --reconfigure build -Dbenchmark=enabled --buildtype=debug
ninja -Cbuild

Then run the benchmark with perf:

perf record -g build/perf/benchmark-subset --benchmark_filter="BM_subset_codepoints/subset_notocjk/100000" --benchmark_repetitions=5

You probably want to filter to a specific benchmark of interest and set the number of repititions high enough to get a good sampling of profile data.

Finally view the profile with:

perf report