Как получить информацию о том, сколько оперативной памяти ест ваше приложение? - PullRequest
1 голос
/ 07 декабря 2010

Так что мне нужно это кроссплатформенным способом, может быть с использованием boost или хотя бы для windows.Так как же узнать, сколько оперативной памяти потребляет ваше приложение?

Ответы [ 4 ]

2 голосов
/ 07 декабря 2010
2 голосов
/ 07 декабря 2010

Для Windows используйте диспетчер задач; для Linux используйте top. Вам гораздо лучше, если ОС скажет вам, чем пытаться угадать в вашем приложении.

1 голос
/ 07 декабря 2010

В Windows с Visual Studio вы можете использовать функции CRT Debug Heap ._CrtMemDumpStatistics может быть использовано для печати полезной статистики._CrtMemDumpAllObjectsSince перечисляет все объекты, расположенные между контрольными точками.Есть более полезные вещи, такие как обнаружение утечки памяти (_CrtDumpMemoryLeaks).Также возможно сделать снимки с _CrtMemCheckpoint и сравнить различия с _CrtMemDifference позже.

Также возможно переопределить new, чтобы получить более подробную информацию с функциями отладки CRT.

#ifdef _DEBUG
#define new new(_CLIENT_BLOCK, __FILE__, __LINE__)
#endif

Примечание: Это только отслеживает распределения CRT.Чтобы получить всю информацию о памяти процесса, вы можете использовать GetProcessMemoryInfo.

0 голосов
/ 07 декабря 2010

Лично мне нравится использовать http://valgrind.org/ для проверки общей производительности моих приложений, ОЧЕНЬ ПОЛЕЗНО ДЛЯ ОБНАРУЖЕНИЯ УТЕЧКИ ПАМЯТИ!Если вам нужна простая информация времени выполнения, то и команда TOP Linux, и диспетчер задач Window очень просты в использовании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...