diff options
author | Bartosz Taudul <wolf.pld@gmail.com> | 2017-09-17 02:22:46 +0300 |
---|---|---|
committer | Bartosz Taudul <wolf.pld@gmail.com> | 2017-09-17 02:22:46 +0300 |
commit | 447f042c9ad8ab28c0e7df77b3f25d497a208670 (patch) | |
tree | 21b5ba3078fccc4bc2f44d7f9ec1f3e23c1a20bd /server/TracySlab.hpp | |
parent | ab033188d86a98f9b7517f3ff753b9ffdb61f6ae (diff) |
Track server memory usage.
Diffstat (limited to 'server/TracySlab.hpp')
-rwxr-xr-x | server/TracySlab.hpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/server/TracySlab.hpp b/server/TracySlab.hpp index df756710..84ba1f4b 100755 --- a/server/TracySlab.hpp +++ b/server/TracySlab.hpp @@ -4,6 +4,8 @@ #include <assert.h> #include <vector> +#include "TracyMemory.hpp" + namespace tracy { @@ -15,10 +17,13 @@ public: : m_ptr( new char[BlockSize] ) , m_buffer( { m_ptr } ) , m_offset( 0 ) - {} + { + memUsage.fetch_add( BlockSize, std::memory_order_relaxed ); + } ~Slab() { + memUsage.fetch_sub( BlockSize * m_buffer.size(), std::memory_order_relaxed ); for( auto& v : m_buffer ) { delete[] v; @@ -33,6 +38,7 @@ public: m_ptr = new char[BlockSize]; m_offset = 0; m_buffer.emplace_back( m_ptr ); + memUsage.fetch_add( BlockSize, std::memory_order_relaxed ); } void* ret = m_ptr + m_offset; m_offset += size; @@ -55,6 +61,7 @@ public: { if( m_buffer.size() > 1 ) { + memUsage.fetch_sub( BlockSize * ( m_buffer.size() - 1 ), std::memory_order_relaxed ); for( int i=1; i<m_buffer.size(); i++ ) { delete[] m_buffer[i]; |