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.
 
 
 
 
 
 
Behdad Esfahbod 217d38dfc7 Try to fix distcheck 3 years ago
..
fonts [perf] Err. Remove HUGE font from perf suite 3 years ago
texts Rename HBGlyphID to HBGlyphID16 3 years ago
Makefile.am Try to fix distcheck 3 years ago
README.md [perf] Add missing ninja command in profiling instructions. 3 years ago
benchmark-map.cc [benchmark-map] Remove rand() overhead from benchmark 3 years ago
benchmark-set.cc [benchmark-set] Split SetLookup into an ordered and random version 3 years ago
benchmark-shape.cc [benchmark-shape] Break lines and shape separately 3 years ago
benchmark-subset.cc [perf] Err. Remove HUGE font from perf suite 3 years ago
meson.build [perf] Spawn off benchmark-shape from perf runner 3 years ago
perf-draw.hh [perf/perf] Fix run when ttfparser is not available 3 years ago
perf-extents.hh [perf/perf] Fix run when ttfparser is not available 3 years ago
perf.cc [perf] Spawn off benchmark-shape from perf runner 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 configure build -Dbenchmark=enabled --buildtype=release

Then build the benchmark binaries with ninja:

ninja -Cbuild perf/benchmark-set

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 -o ~/tmp/profiles/subset.prof ./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 -i ~/tmp/profiles/subset.prof