diff options
author | dcherednik <dcherednik@ydb.tech> | 2023-10-16 18:45:45 +0300 |
---|---|---|
committer | dcherednik <dcherednik@ydb.tech> | 2023-10-16 19:15:52 +0300 |
commit | db31d57343fb362748da89b0e602645ce9dd9810 (patch) | |
tree | 0307597118609ca4a07f5dc7dd2ca0724c0db938 /library/cpp | |
parent | 2ccfda7458622536129fd3b68e9dfbbe971e36f0 (diff) | |
download | ydb-db31d57343fb362748da89b0e602645ce9dd9810.tar.gz |
Speed up TPercentileTracker/TPercentileTrackerLg
old values:
NMonitoring::TPercentileTracker<4ul, 512ul, 15ul>
0.748282s
NMonitoring::TPercentileTrackerLg<4ul, 3ul, 15ul>
0.221432s
new values:
NMonitoring::TPercentileTracker<4ul, 512ul, 15ul>
0.640864s
NMonitoring::TPercentileTrackerLg<4ul, 3ul, 15ul>
0.205138s
Diffstat (limited to 'library/cpp')
-rw-r--r-- | library/cpp/monlib/dynamic_counters/percentile/percentile.h | 3 | ||||
-rw-r--r-- | library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h | 6 |
2 files changed, 3 insertions, 6 deletions
diff --git a/library/cpp/monlib/dynamic_counters/percentile/percentile.h b/library/cpp/monlib/dynamic_counters/percentile/percentile.h index db40793adf..9b3db1c330 100644 --- a/library/cpp/monlib/dynamic_counters/percentile/percentile.h +++ b/library/cpp/monlib/dynamic_counters/percentile/percentile.h @@ -34,8 +34,7 @@ struct TPercentileTracker : public TPercentileBase { // shift frame (call periodically) void Update() { - TVector<size_t> totals(BUCKET_COUNT); - totals.resize(BUCKET_COUNT); + std::array<size_t, BUCKET_COUNT> totals; size_t total = 0; for (size_t i = 0; i < BUCKET_COUNT; ++i) { size_t item = Items[i].load(std::memory_order_relaxed); diff --git a/library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h b/library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h index e27664ded9..01a2277346 100644 --- a/library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h +++ b/library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h @@ -1,7 +1,5 @@ #pragma once -#include <library/cpp/containers/stack_vector/stack_vec.h> - #include <util/generic/bitops.h> #include <cmath> @@ -140,7 +138,7 @@ struct TPercentileTrackerLg : public TPercentileBase { // Needed only for tests size_t GetPercentile(float threshold) { - TStackVec<size_t, ITEMS_COUNT> totals(ITEMS_COUNT); + std::array<size_t, ITEMS_COUNT> totals; size_t total = 0; for (size_t i = 0; i < ITEMS_COUNT; ++i) { total += Items[i].load(); @@ -156,7 +154,7 @@ struct TPercentileTrackerLg : public TPercentileBase { // shift frame (call periodically) void Update() { - TStackVec<size_t, ITEMS_COUNT> totals(ITEMS_COUNT); + std::array<size_t, ITEMS_COUNT> totals; size_t total = 0; for (size_t i = 0; i < ITEMS_COUNT; ++i) { size_t item = Items[i].load(std::memory_order_relaxed); |