как я могу увидеть сколько памяти ест моя программа? - PullRequest
2 голосов
/ 25 февраля 2012

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

Я не хочу знать, сколько физической памяти выделяет система для выполнения моей программы, я знаю, что могу открыть диспетчер процессов и узнать. Я также не хочу записывать в свой код некоторые sizeof и agregations, чтобы я мог знать общий размер пула переменных (скажем, код слишком сложен, чтобы его можно было так модифицировать). Наконец, я использую Microsoft VC ++ 2010 Express, я просто хочу узнать, есть ли рабочее пространство, которое отслеживает такую ​​информацию.

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 25 февраля 2012

Проверьте это: Информация о производительности памяти . Существует несколько метрик запущенного процесса, которые могут вас заинтересовать, в первую очередь вам понадобится private bytes, и эти данные доступны как программно, так и с помощью таких инструментов, как Performance Monitor. Вы также можете перечислить кучи процесса с помощью GetProcessHeaps (и даже HeapWalk, если вам нужны подробности) и напрямую проверить размеры выделения кучи.

0 голосов
/ 25 февраля 2012

Профилировщик Valgrind Massif - отличный инструмент (см. здесь ), но я думаю, что только для Unix / Linux. В вашем случае, в Windows я думаю, Insure ++ или softwareverify - это хороший выбор (это коммерческие инструменты).

Бесплатной альтернативой является tcmalloc от Google, который предоставляет профилировщик кучи здесь

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