2012-02-25 4 views
2

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

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

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

+1

См http://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows. – netcoder

ответ

4

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

0

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

Свободная альтернатива tcmalloc Google, которая предоставляет кучу профилировщика here