Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wolfpld/tracy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Taudul <wolf.pld@gmail.com>2017-09-17 02:22:46 +0300
committerBartosz Taudul <wolf.pld@gmail.com>2017-09-17 02:22:46 +0300
commit447f042c9ad8ab28c0e7df77b3f25d497a208670 (patch)
tree21b5ba3078fccc4bc2f44d7f9ec1f3e23c1a20bd /server/TracySlab.hpp
parentab033188d86a98f9b7517f3ff753b9ffdb61f6ae (diff)
Track server memory usage.
Diffstat (limited to 'server/TracySlab.hpp')
-rwxr-xr-xserver/TracySlab.hpp9
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];