diff options
author | babenko <babenko@yandex-team.com> | 2023-05-19 12:58:03 +0300 |
---|---|---|
committer | babenko <babenko@yandex-team.com> | 2023-05-19 12:58:03 +0300 |
commit | 62539a50bcf9bb30844426ccfa6a49ee08bfb3fe (patch) | |
tree | da3a0d539c0dc4b6563f156ac7e9685066ac07fa /library/cpp/ytalloc/api/ytalloc.h | |
parent | 8d9a38ae2a2758b5031dcc6c11efba25ed7cf5ea (diff) | |
download | ydb-62539a50bcf9bb30844426ccfa6a49ee08bfb3fe.tar.gz |
Extract memory tag API to library
Diffstat (limited to 'library/cpp/ytalloc/api/ytalloc.h')
-rw-r--r-- | library/cpp/ytalloc/api/ytalloc.h | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/library/cpp/ytalloc/api/ytalloc.h b/library/cpp/ytalloc/api/ytalloc.h index d942dde638..219814def2 100644 --- a/library/cpp/ytalloc/api/ytalloc.h +++ b/library/cpp/ytalloc/api/ytalloc.h @@ -71,35 +71,6 @@ size_t GetAllocationSize(const void* ptr); size_t GetAllocationSize(size_t size); //////////////////////////////////////////////////////////////////////////////// -// Memory tagging API -// -// Each allocation can be tagged with a number (from 1 to MaxMemoryTag). -// Setting this to NullMemoryTag disables tagging. -// Internally, YTAlloc tracks the number of bytes used by each tag. -// -// Tagged allocations are somewhat slower. Others (large and huge) are not affected -// (but for these performance implications are negligible anyway). -// -// The current memory tag used for allocations is stored in TLS. - -using TMemoryTag = ui32; -constexpr TMemoryTag NullMemoryTag = 0; -constexpr TMemoryTag MaxMemoryTag = (1ULL << 22) - 1; - -// Updates the current tag value in TLS. -void SetCurrentMemoryTag(TMemoryTag tag); - -// Returns the current tag value from TLS. -TMemoryTag GetCurrentMemoryTag(); - -// Returns the memory usage for a given tag. -// The value is somewhat approxiate and racy. -size_t GetMemoryUsageForTag(TMemoryTag tag); - -// A batched version of GetMemoryUsageForTag. -void GetMemoryUsageForTags(const TMemoryTag* tags, size_t count, size_t* results); - -//////////////////////////////////////////////////////////////////////////////// // Memory zone API // // Each allocation is either in the "normal zone" or "undumpable zone". @@ -390,25 +361,6 @@ std::vector<TProfiledAllocation> GetProfiledAllocationStatistics(); //////////////////////////////////////////////////////////////////////////////// -//! An RAII guard for setting the current memory tag in a scope. -class TMemoryTagGuard -{ -public: - TMemoryTagGuard(); - explicit TMemoryTagGuard(TMemoryTag tag); - - TMemoryTagGuard(const TMemoryTagGuard& other) = delete; - TMemoryTagGuard(TMemoryTagGuard&& other); - - ~TMemoryTagGuard(); - -private: - bool Active_; - TMemoryTag PreviousTag_; -}; - -//////////////////////////////////////////////////////////////////////////////// - } // namespace NYT::NYTAlloc #define YT_ALLOC_INL_H_ |