Name Date Size #Lines LOC

..--

fonts/H25-Apr-2025-

texts/H25-Apr-2025-35,24034,348

README.mdH A D25-Apr-20251.4 KiB5539

benchmark-font.ccH A D25-Apr-20258.2 KiB318275

benchmark-map.ccH A D25-Apr-20252.6 KiB10475

benchmark-ot.ccH A D25-Apr-20252 KiB4033

benchmark-set.ccH A D25-Apr-20253.9 KiB145113

benchmark-shape.ccH A D25-Apr-20253.9 KiB166137

benchmark-subset.ccH A D25-Apr-20257.8 KiB277228

hb-benchmark.hhH A D25-Apr-20252.1 KiB7738

meson.buildH A D25-Apr-2025706 2522

README.md

1# Building and Running
2
3Benchmarks are implemented using [Google Benchmark](https://github.com/google/benchmark).
4
5To build the benchmarks in this directory you need to set the benchmark
6option while configuring the build with meson:
7
8```
9meson build -Dbenchmark=enabled --buildtype=release
10```
11or:
12```
13meson build -Dbenchmark=enabled --buildtype=debugoptimized
14```
15
16
17Then build a specific benchmark binaries with ninja:
18```
19ninja -Cbuild perf/benchmark-set
20```
21or just build the whole project:
22```
23ninja -Cbuild
24```
25
26Finally, to run one of the benchmarks:
27
28```
29./build/perf/benchmark-set
30```
31
32It's possible to filter the benchmarks being run and customize the output
33via flags to the benchmark binary. See the
34[Google Benchmark User Guide](https://github.com/google/benchmark/blob/main/docs/user_guide.md#user-guide) for more details.
35
36# Profiling
37
38Configure the build to include debug information for profiling:
39
40```
41CXXFLAGS="-fno-omit-frame-pointer" meson --reconfigure build -Dbenchmark=enabled --buildtype=debug
42ninja -Cbuild
43```
44
45Then run the benchmark with perf:
46
47```
48perf record -g build/perf/benchmark-subset --benchmark_filter="BM_subset_codepoints/subset_notocjk/100000" --benchmark_repetitions=5
49```
50You 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.
51
52Finally view the profile with:
53
54perf report
55