diff options
author | marat-khalili <marat-khalili@yandex-team.ru> | 2022-02-10 16:51:52 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:51:52 +0300 |
commit | 4820b82de461ea3ac2dce7c2a77eeda965fffc9c (patch) | |
tree | 22e2f840a95c94ee48844701356e8a10d459b94f /util/generic/benchmark | |
parent | fcb328858da947c52819d89cea4a4357cc207ae4 (diff) | |
download | ydb-4820b82de461ea3ac2dce7c2a77eeda965fffc9c.tar.gz |
Restoring authorship annotation for <marat-khalili@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'util/generic/benchmark')
-rw-r--r-- | util/generic/benchmark/string/benchmarks.h | 368 | ||||
-rw-r--r-- | util/generic/benchmark/string/std_string.cpp | 16 | ||||
-rw-r--r-- | util/generic/benchmark/string/string.cpp | 16 | ||||
-rw-r--r-- | util/generic/benchmark/string/ya.make | 22 | ||||
-rw-r--r-- | util/generic/benchmark/ya.make | 2 |
5 files changed, 212 insertions, 212 deletions
diff --git a/util/generic/benchmark/string/benchmarks.h b/util/generic/benchmark/string/benchmarks.h index e347d7ff474..e064c9e6c3e 100644 --- a/util/generic/benchmark/string/benchmarks.h +++ b/util/generic/benchmark/string/benchmarks.h @@ -1,188 +1,188 @@ #pragma once -// Define BENCHMARK_PREFIX and BENCHMARKED_CLASS before including this file. - -#include <util/generic/xrange.h> - -#define Y_CPU_PREFIXED_BENCHMARK_HELPER(prefix, name, iface) Y_CPU_BENCHMARK(prefix##name, iface) -#define Y_CPU_PREFIXED_BENCHMARK(prefix, name, iface) Y_CPU_PREFIXED_BENCHMARK_HELPER(prefix, name, iface) -#define CONCATENATE3_HELPER(a, b, c) a##b##c -#define CONCATENATE3(a, b, c) CONCATENATE3_HELPER(a, b, c) - -namespace { - namespace CONCATENATE3(N, BENCHMARK_PREFIX, Benchmark) { - using TBenchmarkedClass = BENCHMARKED_CLASS; - - const auto defaultString = TBenchmarkedClass(); - const auto emptyString = TBenchmarkedClass(""); +// Define BENCHMARK_PREFIX and BENCHMARKED_CLASS before including this file. + +#include <util/generic/xrange.h> + +#define Y_CPU_PREFIXED_BENCHMARK_HELPER(prefix, name, iface) Y_CPU_BENCHMARK(prefix##name, iface) +#define Y_CPU_PREFIXED_BENCHMARK(prefix, name, iface) Y_CPU_PREFIXED_BENCHMARK_HELPER(prefix, name, iface) +#define CONCATENATE3_HELPER(a, b, c) a##b##c +#define CONCATENATE3(a, b, c) CONCATENATE3_HELPER(a, b, c) + +namespace { + namespace CONCATENATE3(N, BENCHMARK_PREFIX, Benchmark) { + using TBenchmarkedClass = BENCHMARKED_CLASS; + + const auto defaultString = TBenchmarkedClass(); + const auto emptyString = TBenchmarkedClass(""); const auto lengthOneString = TBenchmarkedClass("1"); const auto length1KString = TBenchmarkedClass(1000, '1'); - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CreateDefault, iface) { - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto result = TBenchmarkedClass(); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CreateFromEmptyLiteral, iface) { - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto result = TBenchmarkedClass(""); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CreateFromLengthOneLiteral, iface) { - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto result = TBenchmarkedClass("1"); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CreateLength1K, iface) { - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto result = TBenchmarkedClass(1000, '1'); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyDefaultString, iface) { - const auto& sourceString = defaultString; - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto result = TBenchmarkedClass(sourceString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyEmptyString, iface) { - const auto& sourceString = emptyString; - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto result = TBenchmarkedClass(sourceString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyLengthOneString, iface) { - const auto& sourceString = lengthOneString; - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto result = TBenchmarkedClass(sourceString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyLength1KString, iface) { - const auto& sourceString = length1KString; - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto result = TBenchmarkedClass(sourceString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndUpdateLengthOneString, iface) { - const auto& sourceString = lengthOneString; - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto targetString = TBenchmarkedClass(sourceString); - auto result = targetString[0] = '0'; - Y_DO_NOT_OPTIMIZE_AWAY(targetString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndAppendDefaultString, iface) { - const auto& sourceString = defaultString; - const TBenchmarkedClass::size_type insertPosition = sourceString.size(); - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto targetString = TBenchmarkedClass(sourceString); - auto result = targetString.insert(insertPosition, 1, '0'); - Y_DO_NOT_OPTIMIZE_AWAY(targetString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndAppendEmptyString, iface) { - const auto& sourceString = emptyString; - const TBenchmarkedClass::size_type insertPosition = sourceString.size(); - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto targetString = TBenchmarkedClass(sourceString); - auto result = targetString.insert(insertPosition, 1, '0'); - Y_DO_NOT_OPTIMIZE_AWAY(targetString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndAppendLengthOneString, iface) { - const auto& sourceString = lengthOneString; - const TBenchmarkedClass::size_type insertPosition = sourceString.size(); - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto targetString = TBenchmarkedClass(sourceString); - auto result = targetString.insert(insertPosition, 1, '0'); - Y_DO_NOT_OPTIMIZE_AWAY(targetString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndPrependLengthOneString, iface) { - const auto& sourceString = lengthOneString; - const TBenchmarkedClass::size_type insertPosition = 0; - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto targetString = TBenchmarkedClass(sourceString); - auto result = targetString.insert(insertPosition, 1, '0'); - Y_DO_NOT_OPTIMIZE_AWAY(targetString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndUpdateLength1KString, iface) { - const auto& sourceString = length1KString; - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto targetString = TBenchmarkedClass(sourceString); - auto result = targetString[0] = '0'; - Y_DO_NOT_OPTIMIZE_AWAY(targetString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndAppendLength1KString, iface) { - const auto& sourceString = length1KString; - const TBenchmarkedClass::size_type insertPosition = sourceString.size(); - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto targetString = TBenchmarkedClass(sourceString); - auto result = targetString.insert(insertPosition, 1, '0'); - Y_DO_NOT_OPTIMIZE_AWAY(targetString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - - Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndPrependLength1KString, iface) { - const auto& sourceString = length1KString; - const TBenchmarkedClass::size_type insertPosition = 0; - for (const auto i : xrange(iface.Iterations())) { - Y_UNUSED(i); - auto targetString = TBenchmarkedClass(sourceString); - auto result = targetString.insert(insertPosition, 1, '0'); - Y_DO_NOT_OPTIMIZE_AWAY(targetString); - Y_DO_NOT_OPTIMIZE_AWAY(result); - } - } - } -} - -#undef CONCATENATE3 -#undef CONCATENATE3_HELPER -#undef Y_CPU_PREFIXED_BENCHMARK -#undef Y_CPU_PREFIXED_BENCHMARK_HELPER + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CreateDefault, iface) { + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto result = TBenchmarkedClass(); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CreateFromEmptyLiteral, iface) { + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto result = TBenchmarkedClass(""); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CreateFromLengthOneLiteral, iface) { + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto result = TBenchmarkedClass("1"); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CreateLength1K, iface) { + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto result = TBenchmarkedClass(1000, '1'); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyDefaultString, iface) { + const auto& sourceString = defaultString; + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto result = TBenchmarkedClass(sourceString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyEmptyString, iface) { + const auto& sourceString = emptyString; + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto result = TBenchmarkedClass(sourceString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyLengthOneString, iface) { + const auto& sourceString = lengthOneString; + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto result = TBenchmarkedClass(sourceString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyLength1KString, iface) { + const auto& sourceString = length1KString; + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto result = TBenchmarkedClass(sourceString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndUpdateLengthOneString, iface) { + const auto& sourceString = lengthOneString; + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto targetString = TBenchmarkedClass(sourceString); + auto result = targetString[0] = '0'; + Y_DO_NOT_OPTIMIZE_AWAY(targetString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndAppendDefaultString, iface) { + const auto& sourceString = defaultString; + const TBenchmarkedClass::size_type insertPosition = sourceString.size(); + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto targetString = TBenchmarkedClass(sourceString); + auto result = targetString.insert(insertPosition, 1, '0'); + Y_DO_NOT_OPTIMIZE_AWAY(targetString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndAppendEmptyString, iface) { + const auto& sourceString = emptyString; + const TBenchmarkedClass::size_type insertPosition = sourceString.size(); + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto targetString = TBenchmarkedClass(sourceString); + auto result = targetString.insert(insertPosition, 1, '0'); + Y_DO_NOT_OPTIMIZE_AWAY(targetString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndAppendLengthOneString, iface) { + const auto& sourceString = lengthOneString; + const TBenchmarkedClass::size_type insertPosition = sourceString.size(); + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto targetString = TBenchmarkedClass(sourceString); + auto result = targetString.insert(insertPosition, 1, '0'); + Y_DO_NOT_OPTIMIZE_AWAY(targetString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndPrependLengthOneString, iface) { + const auto& sourceString = lengthOneString; + const TBenchmarkedClass::size_type insertPosition = 0; + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto targetString = TBenchmarkedClass(sourceString); + auto result = targetString.insert(insertPosition, 1, '0'); + Y_DO_NOT_OPTIMIZE_AWAY(targetString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndUpdateLength1KString, iface) { + const auto& sourceString = length1KString; + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto targetString = TBenchmarkedClass(sourceString); + auto result = targetString[0] = '0'; + Y_DO_NOT_OPTIMIZE_AWAY(targetString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndAppendLength1KString, iface) { + const auto& sourceString = length1KString; + const TBenchmarkedClass::size_type insertPosition = sourceString.size(); + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto targetString = TBenchmarkedClass(sourceString); + auto result = targetString.insert(insertPosition, 1, '0'); + Y_DO_NOT_OPTIMIZE_AWAY(targetString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + + Y_CPU_PREFIXED_BENCHMARK(BENCHMARK_PREFIX, CopyAndPrependLength1KString, iface) { + const auto& sourceString = length1KString; + const TBenchmarkedClass::size_type insertPosition = 0; + for (const auto i : xrange(iface.Iterations())) { + Y_UNUSED(i); + auto targetString = TBenchmarkedClass(sourceString); + auto result = targetString.insert(insertPosition, 1, '0'); + Y_DO_NOT_OPTIMIZE_AWAY(targetString); + Y_DO_NOT_OPTIMIZE_AWAY(result); + } + } + } +} + +#undef CONCATENATE3 +#undef CONCATENATE3_HELPER +#undef Y_CPU_PREFIXED_BENCHMARK +#undef Y_CPU_PREFIXED_BENCHMARK_HELPER diff --git a/util/generic/benchmark/string/std_string.cpp b/util/generic/benchmark/string/std_string.cpp index cb10b4dc0c6..3bf1e066ede 100644 --- a/util/generic/benchmark/string/std_string.cpp +++ b/util/generic/benchmark/string/std_string.cpp @@ -1,8 +1,8 @@ -#include <library/cpp/testing/benchmark/bench.h> - -#include <string> - -#define BENCHMARK_PREFIX StdString -#define BENCHMARKED_CLASS std::string - -#include "benchmarks.h" +#include <library/cpp/testing/benchmark/bench.h> + +#include <string> + +#define BENCHMARK_PREFIX StdString +#define BENCHMARKED_CLASS std::string + +#include "benchmarks.h" diff --git a/util/generic/benchmark/string/string.cpp b/util/generic/benchmark/string/string.cpp index c634c204d84..4523e5c0ecf 100644 --- a/util/generic/benchmark/string/string.cpp +++ b/util/generic/benchmark/string/string.cpp @@ -1,8 +1,8 @@ -#include <library/cpp/testing/benchmark/bench.h> - -#include <util/generic/string.h> - -#define BENCHMARK_PREFIX TString -#define BENCHMARKED_CLASS ::TString - -#include "benchmarks.h" +#include <library/cpp/testing/benchmark/bench.h> + +#include <util/generic/string.h> + +#define BENCHMARK_PREFIX TString +#define BENCHMARKED_CLASS ::TString + +#include "benchmarks.h" diff --git a/util/generic/benchmark/string/ya.make b/util/generic/benchmark/string/ya.make index c2956de6a18..8031a304b80 100644 --- a/util/generic/benchmark/string/ya.make +++ b/util/generic/benchmark/string/ya.make @@ -1,11 +1,11 @@ -Y_BENCHMARK() - -OWNER(g:util) -SUBSCRIBER(g:util-subscribers) - -SRCS( - string.cpp - std_string.cpp -) - -END() +Y_BENCHMARK() + +OWNER(g:util) +SUBSCRIBER(g:util-subscribers) + +SRCS( + string.cpp + std_string.cpp +) + +END() diff --git a/util/generic/benchmark/ya.make b/util/generic/benchmark/ya.make index 635860a646c..ca137dc4e7f 100644 --- a/util/generic/benchmark/ya.make +++ b/util/generic/benchmark/ya.make @@ -12,7 +12,7 @@ RECURSE( singleton smart_pointers sort - string + string vector_count_ctor vector_count_ctor/metrics cont_speed |