| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- // Copyright The OpenTelemetry Authors
- // SPDX-License-Identifier: Apache-2.0
- #include <benchmark/benchmark.h>
- #include <stddef.h>
- #include <string>
- #include "opentelemetry/baggage/baggage.h"
- #include "opentelemetry/nostd/function_ref.h"
- #include "opentelemetry/nostd/shared_ptr.h"
- #include "opentelemetry/nostd/string_view.h"
- using namespace opentelemetry::baggage;
- namespace nostd = opentelemetry::nostd;
- namespace
- {
- const size_t kNumEntries = 10;
- std::string header_with_custom_entries(size_t num_entries)
- {
- std::string header;
- for (size_t i = 0; i < num_entries; i++)
- {
- std::string key = "ADecentlyLargekey" + std::to_string(i);
- std::string value = "ADecentlyLargeValue" + std::to_string(i);
- header.append(key).append("=").append(value);
- if (i != num_entries - 1)
- {
- header += ",";
- }
- }
- return header;
- }
- void BM_CreateBaggageFromTenEntries(benchmark::State &state)
- {
- std::string header = header_with_custom_entries(kNumEntries);
- while (state.KeepRunning())
- {
- auto baggage = Baggage::FromHeader(header);
- }
- }
- BENCHMARK(BM_CreateBaggageFromTenEntries);
- void BM_ExtractBaggageHavingTenEntries(benchmark::State &state)
- {
- auto baggage = Baggage::FromHeader(header_with_custom_entries(kNumEntries));
- while (state.KeepRunning())
- {
- baggage->GetAllEntries(
- [](nostd::string_view /* key */, nostd::string_view /* value */) { return true; });
- }
- }
- BENCHMARK(BM_ExtractBaggageHavingTenEntries);
- void BM_CreateBaggageFrom180Entries(benchmark::State &state)
- {
- std::string header = header_with_custom_entries(Baggage::kMaxKeyValuePairs);
- while (state.KeepRunning())
- {
- auto baggage = Baggage::FromHeader(header);
- }
- }
- BENCHMARK(BM_CreateBaggageFrom180Entries);
- void BM_ExtractBaggageWith180Entries(benchmark::State &state)
- {
- auto baggage = Baggage::FromHeader(header_with_custom_entries(Baggage::kMaxKeyValuePairs));
- while (state.KeepRunning())
- {
- baggage->GetAllEntries(
- [](nostd::string_view /* key */, nostd::string_view /* value */) { return true; });
- }
- }
- BENCHMARK(BM_ExtractBaggageWith180Entries);
- void BM_SetValueBaggageWithTenEntries(benchmark::State &state)
- {
- auto baggage = Baggage::FromHeader(
- header_with_custom_entries(kNumEntries - 1)); // 9 entries, and add one new
- while (state.KeepRunning())
- {
- auto new_baggage = baggage->Set("new_key", "new_value");
- }
- }
- BENCHMARK(BM_SetValueBaggageWithTenEntries);
- void BM_SetValueBaggageWith180Entries(benchmark::State &state)
- {
- auto baggage = Baggage::FromHeader(header_with_custom_entries(
- Baggage::kMaxKeyValuePairs - 1)); // keep 179 entries, and add one new
- while (state.KeepRunning())
- {
- auto new_baggage = baggage->Set("new_key", "new_value");
- }
- }
- BENCHMARK(BM_SetValueBaggageWith180Entries);
- void BM_BaggageToHeaderTenEntries(benchmark::State &state)
- {
- auto baggage = Baggage::FromHeader(header_with_custom_entries(kNumEntries));
- while (state.KeepRunning())
- {
- auto new_baggage = baggage->ToHeader();
- }
- }
- BENCHMARK(BM_BaggageToHeaderTenEntries);
- void BM_BaggageToHeader180Entries(benchmark::State &state)
- {
- auto baggage = Baggage::FromHeader(header_with_custom_entries(Baggage::kMaxKeyValuePairs));
- while (state.KeepRunning())
- {
- auto new_baggage = baggage->ToHeader();
- }
- }
- BENCHMARK(BM_BaggageToHeader180Entries);
- } // namespace
- BENCHMARK_MAIN();
|