• Show log

    Commit

  • Hash : 2fcace77
    Author : Garret Rieger
    Date : 2024-04-02T17:42:14

    [subet] Don't use experimental api flag in benchmark if not compiled with experimental api.
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/harfbuzz.git
    Git SSH git@git.kmx.io:kc3-lang/harfbuzz.git
    Public access ? public
    Description

    HarfBuzz text shaping engine

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags

  • 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