• Show log

    Commit

  • Hash : f5d619be
    Author : Behdad Esfahbod
    Date : 2022-05-18T11:04:52

    [ot-tags] Further gate the slow complex case, and add more tests
    
    Part of https://github.com/harfbuzz/harfbuzz/issues/3591
    
    Still 'zh-trad' is the slowest case.
    
    --------------------------------------------------------------------------------------------------
    Benchmark                                                        Time             CPU   Iterations
    --------------------------------------------------------------------------------------------------
    BM_hb_ot_tags_from_script_and_language/COMMON zh_trad          136 ns          136 ns      5107838
    BM_hb_ot_tags_from_script_and_language/COMMON ab_abcd          115 ns          115 ns      6103104
    BM_hb_ot_tags_from_script_and_language/COMMON ab_abc          25.4 ns         25.3 ns     27674482
    BM_hb_ot_tags_from_script_and_language/COMMON abcdef_XY       20.2 ns         20.1 ns     34795719
    BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY         19.4 ns         19.3 ns     36390401
    BM_hb_ot_tags_from_script_and_language/COMMON cxy_CN          33.5 ns         33.4 ns     20998939
    BM_hb_ot_tags_from_script_and_language/COMMON exy_CN          25.1 ns         25.0 ns     27705832
    BM_hb_ot_tags_from_script_and_language/COMMON zh_CN           34.2 ns         34.1 ns     20564356
    BM_hb_ot_tags_from_script_and_language/COMMON en_US           15.5 ns         15.5 ns     45032204
    BM_hb_ot_tags_from_script_and_language/LATIN en_US            15.9 ns         15.8 ns     44412379
    BM_hb_ot_tags_from_script_and_language/COMMON none            4.72 ns         4.71 ns    149101665
    BM_hb_ot_tags_from_script_and_language/LATIN none             4.72 ns         4.70 ns    149254498
    

  • 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
    kc3_lang_org thodg_w www_kmx_io thodg_l thodg thodg_m
    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 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