• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Benchmarks for hb_set_t operations.
3  */
4 #include "benchmark/benchmark.h"
5 
6 #include "hb-ot.h"
7 
BM_hb_ot_tags_from_script_and_language(benchmark::State & state,hb_script_t script,const char * language_str)8 static void BM_hb_ot_tags_from_script_and_language (benchmark::State& state,
9 						    hb_script_t script,
10 						    const char *language_str) {
11 
12   hb_language_t language = hb_language_from_string (language_str, -1);
13 
14   for (auto _ : state)
15   {
16     hb_tag_t script_tags[HB_OT_MAX_TAGS_PER_SCRIPT];
17     unsigned script_count = HB_OT_MAX_TAGS_PER_SCRIPT;
18 
19     hb_tag_t language_tags[HB_OT_MAX_TAGS_PER_LANGUAGE];
20     unsigned language_count = HB_OT_MAX_TAGS_PER_LANGUAGE;
21 
22     hb_ot_tags_from_script_and_language (script,
23 					 language,
24 					 &script_count /* IN/OUT */,
25 					 script_tags /* OUT */,
26 					 &language_count /* IN/OUT */,
27 					 language_tags /* OUT */);
28   }
29 }
30 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_abcd, HB_SCRIPT_COMMON, "zh_abcd");
31 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_hans, HB_SCRIPT_COMMON, "zh_hans");
32 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abcd, HB_SCRIPT_COMMON, "ab_abcd");
33 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abc, HB_SCRIPT_COMMON, "ab_abc");
34 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcdef_XY, HB_SCRIPT_COMMON, "abcdef_XY");
35 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcd_XY, HB_SCRIPT_COMMON, "abcd_XY");
36 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON cxy_CN, HB_SCRIPT_COMMON, "cxy_CN");
37 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON exy_CN, HB_SCRIPT_COMMON, "exy_CN");
38 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_CN, HB_SCRIPT_COMMON, "zh_CN");
39 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON en_US, HB_SCRIPT_COMMON, "en_US");
40 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN en_US, HB_SCRIPT_LATIN, "en_US");
41 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON none, HB_SCRIPT_LATIN, nullptr);
42 BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN none, HB_SCRIPT_LATIN, nullptr);
43 
44 BENCHMARK_MAIN();
45