我有一個應用程序在C++中,我想實現基本的內存分析功能。編程基本的應用程序內存分析:如何計算創建的指針?
對於最重要和耗費內存的類,我在構造函數,複製構造函數和析構函數中包含一些代碼,用於計算和保存類的每個實例使用的內存量(代碼僅在宏# MEMPROFILE的定義是這樣的:。
class MyClass
{
MyClass(){
#ifdef MEMPROFILE
calcAndSaveMemUsage();
#endif
}
...
}
類似地,析構函數相應地更新計數器這樣,每當分析宏定義一個新的實例一樣MyClass obj
創建,內存消耗信息自動處理
有沒有辦法自動在指針上做類似的事情 - 無論是一般的,還是特定類的指針?對於實例,每次創建指針時自動增加一個計數器?
我想了解更多關於實現這一點的任何方法,無論是重載,包裝還是儀器。 PS:我知道可以幫助我剖析記憶的外部工具。我有興趣瞭解上面提到的特定事物。
如何重載'new'和'new []'運算符? –
也許不是你要找的東西,但是你可以使用'std :: shared_ptr'然後使用它的'use_count()'方法 – aguadoe