benchmark-ot.cc 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "hb-benchmark.hh"
  2. static void BM_hb_ot_tags_from_script_and_language (benchmark::State& state,
  3. hb_script_t script,
  4. const char *language_str) {
  5. hb_language_t language = hb_language_from_string (language_str, -1);
  6. for (auto _ : state)
  7. {
  8. hb_tag_t script_tags[HB_OT_MAX_TAGS_PER_SCRIPT];
  9. unsigned script_count = HB_OT_MAX_TAGS_PER_SCRIPT;
  10. hb_tag_t language_tags[HB_OT_MAX_TAGS_PER_LANGUAGE];
  11. unsigned language_count = HB_OT_MAX_TAGS_PER_LANGUAGE;
  12. hb_ot_tags_from_script_and_language (script,
  13. language,
  14. &script_count /* IN/OUT */,
  15. script_tags /* OUT */,
  16. &language_count /* IN/OUT */,
  17. language_tags /* OUT */);
  18. }
  19. }
  20. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_abcd, HB_SCRIPT_COMMON, "zh_abcd");
  21. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_hans, HB_SCRIPT_COMMON, "zh_hans");
  22. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abcd, HB_SCRIPT_COMMON, "ab_abcd");
  23. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON ab_abc, HB_SCRIPT_COMMON, "ab_abc");
  24. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcdef_XY, HB_SCRIPT_COMMON, "abcdef_XY");
  25. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON abcd_XY, HB_SCRIPT_COMMON, "abcd_XY");
  26. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON cxy_CN, HB_SCRIPT_COMMON, "cxy_CN");
  27. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON exy_CN, HB_SCRIPT_COMMON, "exy_CN");
  28. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON zh_CN, HB_SCRIPT_COMMON, "zh_CN");
  29. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON en_US, HB_SCRIPT_COMMON, "en_US");
  30. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN en_US, HB_SCRIPT_LATIN, "en_US");
  31. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, COMMON none, HB_SCRIPT_LATIN, nullptr);
  32. BENCHMARK_CAPTURE (BM_hb_ot_tags_from_script_and_language, LATIN none, HB_SCRIPT_LATIN, nullptr);
  33. BENCHMARK_MAIN();