diff options
author | alexvru <alexvru@ydb.tech> | 2023-08-01 11:23:27 +0300 |
---|---|---|
committer | alexvru <alexvru@ydb.tech> | 2023-08-01 11:23:27 +0300 |
commit | 0cc2c02c32be31494e95ea489c313070a75d8928 (patch) | |
tree | bf1494061f4ce0c31eb9475b6b5f6e2ef5255694 /library/cpp | |
parent | 7e0591a87e723564979f7a7564ef22a2ff3aa8ca (diff) | |
download | ydb-0cc2c02c32be31494e95ea489c313070a75d8928.tar.gz |
Copy ineffective rope in DS proxy Get request KIKIMR-18902
Diffstat (limited to 'library/cpp')
-rw-r--r-- | library/cpp/actors/util/CMakeLists.darwin-x86_64.txt | 2 | ||||
-rw-r--r-- | library/cpp/actors/util/CMakeLists.linux-aarch64.txt | 2 | ||||
-rw-r--r-- | library/cpp/actors/util/CMakeLists.linux-x86_64.txt | 2 | ||||
-rw-r--r-- | library/cpp/actors/util/CMakeLists.windows-x86_64.txt | 2 | ||||
-rw-r--r-- | library/cpp/actors/util/rope.cpp | 13 | ||||
-rw-r--r-- | library/cpp/actors/util/rope.h | 2 | ||||
-rw-r--r-- | library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt | 2 | ||||
-rw-r--r-- | library/cpp/actors/util/ya.make | 2 |
8 files changed, 27 insertions, 0 deletions
diff --git a/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt index 6ab1bb43c3..be68d418f7 100644 --- a/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt @@ -12,6 +12,7 @@ add_library(cpp-actors-util) target_link_libraries(cpp-actors-util PUBLIC contrib-libs-cxxsupp yutil + cpp-containers-absl_flat_hash cpp-deprecated-atomic library-cpp-pop_count ) @@ -19,6 +20,7 @@ target_sources(cpp-actors-util PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp diff --git a/library/cpp/actors/util/CMakeLists.linux-aarch64.txt b/library/cpp/actors/util/CMakeLists.linux-aarch64.txt index 4582852947..9c5183c2bd 100644 --- a/library/cpp/actors/util/CMakeLists.linux-aarch64.txt +++ b/library/cpp/actors/util/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_link_libraries(cpp-actors-util PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + cpp-containers-absl_flat_hash cpp-deprecated-atomic library-cpp-pop_count ) @@ -20,6 +21,7 @@ target_sources(cpp-actors-util PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp diff --git a/library/cpp/actors/util/CMakeLists.linux-x86_64.txt b/library/cpp/actors/util/CMakeLists.linux-x86_64.txt index 4582852947..9c5183c2bd 100644 --- a/library/cpp/actors/util/CMakeLists.linux-x86_64.txt +++ b/library/cpp/actors/util/CMakeLists.linux-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(cpp-actors-util PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + cpp-containers-absl_flat_hash cpp-deprecated-atomic library-cpp-pop_count ) @@ -20,6 +21,7 @@ target_sources(cpp-actors-util PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp diff --git a/library/cpp/actors/util/CMakeLists.windows-x86_64.txt b/library/cpp/actors/util/CMakeLists.windows-x86_64.txt index 6ab1bb43c3..be68d418f7 100644 --- a/library/cpp/actors/util/CMakeLists.windows-x86_64.txt +++ b/library/cpp/actors/util/CMakeLists.windows-x86_64.txt @@ -12,6 +12,7 @@ add_library(cpp-actors-util) target_link_libraries(cpp-actors-util PUBLIC contrib-libs-cxxsupp yutil + cpp-containers-absl_flat_hash cpp-deprecated-atomic library-cpp-pop_count ) @@ -19,6 +20,7 @@ target_sources(cpp-actors-util PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/affinity.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_track.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data.cpp ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/should_continue.cpp diff --git a/library/cpp/actors/util/rope.cpp b/library/cpp/actors/util/rope.cpp new file mode 100644 index 0000000000..0927774099 --- /dev/null +++ b/library/cpp/actors/util/rope.cpp @@ -0,0 +1,13 @@ +#include "rope.h" +#include <library/cpp/containers/absl_flat_hash/flat_hash_set.h> + +size_t TRope::GetOccupiedMemorySize() const { + size_t res = 0; + absl::flat_hash_set<const void*> chunks; + for (const auto& chunk : Chain) { + if (const auto [it, inserted] = chunks.insert(chunk.Backend.UniqueId()); inserted) { + res += chunk.Backend.GetOccupiedMemorySize(); + } + } + return res; +} diff --git a/library/cpp/actors/util/rope.h b/library/cpp/actors/util/rope.h index 9df251db9c..201ce06f0d 100644 --- a/library/cpp/actors/util/rope.h +++ b/library/cpp/actors/util/rope.h @@ -806,6 +806,8 @@ public: return TRcBuf(Begin().GetChunk()); } + size_t GetOccupiedMemorySize() const; + friend bool operator==(const TRope& x, const TRope& y) { return Compare(x, y) == 0; } friend bool operator!=(const TRope& x, const TRope& y) { return Compare(x, y) != 0; } friend bool operator< (const TRope& x, const TRope& y) { return Compare(x, y) < 0; } diff --git a/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt index cb32e0652f..f02b2d926c 100644 --- a/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt @@ -22,6 +22,8 @@ target_link_options(library-cpp-actors-util-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC + -framework + CoreFoundation ) target_sources(library-cpp-actors-util-ut PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/cpu_load_log_ut.cpp diff --git a/library/cpp/actors/util/ya.make b/library/cpp/actors/util/ya.make index 912b55868d..48d595c156 100644 --- a/library/cpp/actors/util/ya.make +++ b/library/cpp/actors/util/ya.make @@ -19,6 +19,7 @@ SRCS( memory_tracker.cpp memory_tracker.h recentwnd.h + rope.cpp rope.h rc_buf.cpp rc_buf.h @@ -37,6 +38,7 @@ SRCS( ) PEERDIR( + library/cpp/containers/absl_flat_hash library/cpp/deprecated/atomic library/cpp/pop_count ) |