C++で書かれた大きなプロジェクトがあります。一部のGUIアクション(ボタンクリック)では、2MBのメモリが割り当てられます。これはメモリリークではありません。もちろん、メモリは後で解放されます。ただし、メモリ割り当てサイズを減らすために、どのオブジェクトが割り当てられているかを調査する必要があります。
だから私はdebugcrtを使おうとしました
OnBtnClick()
{
//breakpoint1
_CrtMemState s1;
_CrtMemCheckpoint( &s1 );
//The logic itself
_CrtMemDumpAllObjectsSince(&s1);
_CrtMemState s2;
_CrtMemCheckpoint( &s2 );
_CrtMemState s3;
if ( _CrtMemDifference( &s3, &s1, &s2) )
_CrtMemDumpStatistics( &s3 );
//breakpoint2
}
デバッグレポートには、400KBのみが割り当てられたと記載されています。ただし、2つのブレークポイント間のタスクマネージャーのプロセスメモリが2MB増加しました。
したがって、作成されたダンプは役に立ちません。残りのメモリ割り当てはどこにあるのか説明してもらえますか?