Каков наилучший способ измерения использования памяти в программе? - PullRequest
3 голосов
/ 24 ноября 2008

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

Для измерения памяти я использовал GlobalMemoryStatusEx. Смотри: http://msdn.microsoft.com/en-us/library/aa366589(VS.85).aspx

Я считаю, что это работает для большинства разновидностей Windows, от Windows 2000 вплоть до Windows Vista включительно.

Является ли это предпочтительным способом измерения использования памяти внутри программы или есть другой, более эффективный способ?


Addenum: найден вопрос Stackoverflow: Как получить использование памяти под Windows в C ++ , который ссылается GetProcessMemoryInfo

Я попробую это.

Ответы [ 3 ]

1 голос
/ 19 января 2010

Смотрите аденум в моем вопросе.

1 голос
/ 24 ноября 2008

Если вы пытаетесь оптимизировать свою собственную программу с точки зрения памяти, я предлагаю вам использовать для этого инструмент профилирования памяти. Есть много там ... некоторые бесплатны, некоторые нет .. вы обязательно найдете тот, который вам нужен. Эти инструменты написаны специально для того, что вам нужно (а также для поиска утечек памяти), поэтому ... будет сложно сравнивать их и делать что-то подобное самостоятельно из вашей собственной программы:)

0 голосов
/ 24 ноября 2008

Я использую valgrind для отслеживания использования памяти, а также для профилирования кода и обнаружения утечек памяти. Мне кажется, что инструмент массива отслеживает использование памяти в стеке и куче.

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