45 lines
2.1 KiB
C++
45 lines
2.1 KiB
C++
/*
|
|
* Benchmarks for hb_set_t operations.
|
|
*/
|
|
#include "benchmark/benchmark.h"
|
|
|
|
#include "hb-ot.h"
|
|
|
|
static void BM_hb_ot_tags_from_script_and_language (benchmark::State& state,
|
|
hb_script_t script,
|
|
const char *language_str) {
|
|
|
|
hb_language_t language = hb_language_from_string (language_str, -1);
|
|
|
|
for (auto _ : state)
|
|
{
|
|
hb_tag_t script_tags[HB_OT_MAX_TAGS_PER_SCRIPT];
|
|
unsigned script_count = HB_OT_MAX_TAGS_PER_SCRIPT;
|
|
|
|
hb_tag_t language_tags[HB_OT_MAX_TAGS_PER_LANGUAGE];
|
|
unsigned language_count = HB_OT_MAX_TAGS_PER_LANGUAGE;
|
|
|
|
hb_ot_tags_from_script_and_language (script,
|
|
language,
|
|
&script_count /* IN/OUT */,
|
|
script_tags /* OUT */,
|
|
&language_count /* IN/OUT */,
|
|
language_tags /* OUT */);
|
|
}
|
|
}
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_abcd, HB_SCRIPT_COMMON, "zh_abcd");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_hans, HB_SCRIPT_COMMON, "zh_hans");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abcd, HB_SCRIPT_COMMON, "ab_abcd");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abc, HB_SCRIPT_COMMON, "ab_abc");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcdef_XY, HB_SCRIPT_COMMON, "abcdef_XY");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcd_XY, HB_SCRIPT_COMMON, "abcd_XY");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON cxy_CN, HB_SCRIPT_COMMON, "cxy_CN");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON exy_CN, HB_SCRIPT_COMMON, "exy_CN");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_CN, HB_SCRIPT_COMMON, "zh_CN");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON en_US, HB_SCRIPT_COMMON, "en_US");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN en_US, HB_SCRIPT_LATIN, "en_US");
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON none, HB_SCRIPT_LATIN, nullptr);
|
|
BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN none, HB_SCRIPT_LATIN, nullptr);
|
|
|
|
BENCHMARK_MAIN();
|