Added some calls for tracking dynamic allocations to the InstanceCounter.

This commit is contained in:
wrenczes@gmail.com
2011-04-23 08:43:34 +00:00
parent bd56723bc0
commit fc67e1515a

View File

@@ -1,7 +1,7 @@
#ifndef OBJECTANALYTICS_H #ifndef OBJECTANALYTICS_H
#define OBJECTANALYTICS_H #define OBJECTANALYTICS_H
#ifdef DEBUG #ifdef _DEBUG
#define TRACK_OBJECT_USAGE #define TRACK_OBJECT_USAGE
#endif #endif
@@ -18,6 +18,7 @@ namespace ObjectAnalytics
#define SUPPORT_OBJECT_ANALYTICS(classname) \ #define SUPPORT_OBJECT_ANALYTICS(classname) \
template <> unsigned int InstanceCounter<classname>::sHighWaterMark = 0; \ template <> unsigned int InstanceCounter<classname>::sHighWaterMark = 0; \
template <> unsigned int InstanceCounter<classname>::sInstanceCount = 0; \ template <> unsigned int InstanceCounter<classname>::sInstanceCount = 0; \
template <> uint64_t InstanceCounter<classname>::sDynamicMemoryAllocated = 0;
/** /**
@@ -76,8 +77,24 @@ public:
return sizeof(T) * sHighWaterMark; return sizeof(T) * sHighWaterMark;
} }
void IncrementDynamicMemoryUsage(uint64_t inMemoryIncrease)
{
sDynamicMemoryAllocated += inMemoryIncrease;
}
void DecrementDynamicMemoryUsage(uint64_t inMemoryDecrease)
{
sDynamicMemoryAllocated -= inMemoryDecrease;
}
static uint64_t GetDynamicAllocationsCount()
{
return sDynamicMemoryAllocated;
}
static unsigned int sInstanceCount; static unsigned int sInstanceCount;
static unsigned int sHighWaterMark; static unsigned int sHighWaterMark;
static uint64_t sDynamicMemoryAllocated;
}; };
#else #else