Windows — есть ли инструмент, который поддерживает профилирование использования памяти на основе контрольных точек для переполнения стека

Я работаю над сетевым приложением. Я хочу видеть использование памяти между различными этапами моего приложения, например использование памяти между инициализацией и выпуском или использование памяти между отправкой и получением. Я гуглил и пытаюсь найти решение, но нет поста, который бы точно соответствовал моим требованиям.

Пожалуйста, ребята, вы можете предложить любой инструмент или процесс, который может помочь мне выполнить на основе контрольной точки профилирование памяти как на платформе 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.

Я использую Visual Studio 2010 Professional в Windows 7 Ultimate.

2

Решение

Использование памяти на основе контрольных точек встроено в библиотеки отладки CRT в Visual C ++.

http://msdn.microsoft.com/en-us/library/974tc9t1(v=vs.80).aspx

4

Другие решения

Других решений пока нет …