diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:15 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:15 +0300 |
commit | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (patch) | |
tree | da2c34829458c7d4e74bdfbdf85dff449e9e7fb8 /util/charset/benchmark | |
parent | 778e51ba091dc39e7b7fcab2b9cf4dbedfb6f2b5 (diff) | |
download | ydb-72cb13b4aff9bc9cf22e49251bc8fd143f82538f.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 1 of 2.
Diffstat (limited to 'util/charset/benchmark')
-rw-r--r-- | util/charset/benchmark/to_lower/main.cpp | 52 | ||||
-rw-r--r-- | util/charset/benchmark/utf8_to_wide/main.cpp | 64 |
2 files changed, 58 insertions, 58 deletions
diff --git a/util/charset/benchmark/to_lower/main.cpp b/util/charset/benchmark/to_lower/main.cpp index e95fdc2371..82ee1747b2 100644 --- a/util/charset/benchmark/to_lower/main.cpp +++ b/util/charset/benchmark/to_lower/main.cpp @@ -20,34 +20,34 @@ static const auto LongRussian = UTF8ToWide( "Большая часть таблицы занята китайско-японскими иероглифами и своеобразными корейскими" "буквами. В Юникоде 10.0 в этой плоскости представлены следующие блоки"); -#define DEFINE_INPLACE_BENCH(s) \ - Y_CPU_BENCHMARK(s##CopyDetach, iface) { \ - for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ - NBench::Clobber(); \ - auto copy = s; \ - NBench::Escape(copy.Detach()); \ - NBench::Clobber(); \ - } \ - } \ - \ - Y_CPU_BENCHMARK(s##Inplace, iface) { \ - for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ - NBench::Clobber(); \ - auto copy = s; \ - ToLower(copy); \ - NBench::Escape(copy.data()); \ - NBench::Clobber(); \ - } \ +#define DEFINE_INPLACE_BENCH(s) \ + Y_CPU_BENCHMARK(s##CopyDetach, iface) { \ + for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ + NBench::Clobber(); \ + auto copy = s; \ + NBench::Escape(copy.Detach()); \ + NBench::Clobber(); \ + } \ + } \ + \ + Y_CPU_BENCHMARK(s##Inplace, iface) { \ + for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ + NBench::Clobber(); \ + auto copy = s; \ + ToLower(copy); \ + NBench::Escape(copy.data()); \ + NBench::Clobber(); \ + } \ } -#define DEFINE_RET_BENCH(s) \ - Y_CPU_BENCHMARK(s##Ret, iface) { \ - for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ - NBench::Clobber(); \ - const auto res = ToLowerRet(TWtringBuf{s}); \ - NBench::Escape(res.data()); \ - NBench::Clobber(); \ - } \ +#define DEFINE_RET_BENCH(s) \ + Y_CPU_BENCHMARK(s##Ret, iface) { \ + for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ + NBench::Clobber(); \ + const auto res = ToLowerRet(TWtringBuf{s}); \ + NBench::Escape(res.data()); \ + NBench::Clobber(); \ + } \ } DEFINE_INPLACE_BENCH(ShortAscii) diff --git a/util/charset/benchmark/utf8_to_wide/main.cpp b/util/charset/benchmark/utf8_to_wide/main.cpp index 09fa567fe5..d1e79965ac 100644 --- a/util/charset/benchmark/utf8_to_wide/main.cpp +++ b/util/charset/benchmark/utf8_to_wide/main.cpp @@ -46,39 +46,39 @@ namespace { } #ifdef _sse2_ - #define IS_ASCII_BENCHMARK(length) \ - Y_CPU_BENCHMARK(IsStringASCII##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCII(data.begin(), data.end())); \ - } \ - } \ - Y_CPU_BENCHMARK(IsStringASCIISlow##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISlow(data.begin(), data.end())); \ - } \ - } \ - Y_CPU_BENCHMARK(IsStringASCIISSE##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISSE(reinterpret_cast<const unsigned char*>(data.begin()), reinterpret_cast<const unsigned char*>(data.end()))); \ - } \ - } + #define IS_ASCII_BENCHMARK(length) \ + Y_CPU_BENCHMARK(IsStringASCII##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCII(data.begin(), data.end())); \ + } \ + } \ + Y_CPU_BENCHMARK(IsStringASCIISlow##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISlow(data.begin(), data.end())); \ + } \ + } \ + Y_CPU_BENCHMARK(IsStringASCIISSE##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISSE(reinterpret_cast<const unsigned char*>(data.begin()), reinterpret_cast<const unsigned char*>(data.end()))); \ + } \ + } #else //no sse - #define IS_ASCII_BENCHMARK(length) \ - Y_CPU_BENCHMARK(IsStringASCIIScalar##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCII(data.begin(), data.end())); \ - } \ - } \ - Y_CPU_BENCHMARK(IsStringASCIISlow##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISlow(data.begin(), data.end())); \ - } \ - } + #define IS_ASCII_BENCHMARK(length) \ + Y_CPU_BENCHMARK(IsStringASCIIScalar##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCII(data.begin(), data.end())); \ + } \ + } \ + Y_CPU_BENCHMARK(IsStringASCIISlow##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISlow(data.begin(), data.end())); \ + } \ + } #endif IS_ASCII_BENCHMARK(1); |