我正在开发基于网络的应用程序。我想看看我的应用程序的不同阶段之间的内存使用情况,例如初始化和发布之间的内存使用情况或发送和接收之间的内存使用情况。我用谷歌搜索并尝试找到一个解决方案,但没有完全符合我要求的帖子。
请大家,您可以建议任何可以帮助我在Linux和Windows平台上执行基于检查点的内存分析的工具或流程。
提前致谢
以下代码
_CrtMemState memState1;
_CrtMemCheckpoint(&memState1);
char *p = new char[100];
p = new char[100];
p = new char[100];
p = new char[100];
p = new char[100];
_CrtMemState memState2;
_CrtMemCheckpoint(&memState2);
_CrtMemState memStateDiff;
_CrtMemDifference(&memStateDiff, &memState1, &memState2);
_CrtMemDumpStatistics(&memStateDiff);'
给我输出
0 bytes in 0 Free Blocks.
0 bytes in 0 Normal Blocks.
0 bytes in 0 CRT Blocks.
0 bytes in 0 Ignore Blocks.
0 bytes in 0 Client Blocks.
Largest number used: 0 bytes.
Total allocations: 0 bytes.
我在Windows 7旗舰版上使用Visual Studio 2010 Professional。
答案 0 :(得分:4)
基于检查点的内存使用情况内置于Visual C ++中的调试CRT库中。
http://msdn.microsoft.com/en-us/library/974tc9t1(v=vs.80).aspx