Как во время выполнения я могу программно определить, сколько памяти используется динамически связанными библиотеками? - PullRequest
1 голос
/ 08 февраля 2012

Я хочу узнать, сколько памяти использует мое приложение.Я также хочу знать, какая часть моей программы использует больше всего памяти.Например, у меня есть процесс, который использует 100 МБ памяти, в этом процессе есть .dll, который использует 90 МБ памяти.Я хотел бы знать, что ".dll" занимает эти 90 МБ.

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

Это приложение будет работать в Windows.

1 Ответ

1 голос
/ 08 февраля 2012

Вопрос полностью зависит от операционной системы.

(я предполагаю, что DLL преобразуется в динамически загружаемые библиотеки и общие объекты ELF в мире Linux)

Для приложения Linux ваше приложение может последовательно читать текстовый псевдофайл /proc/self/maps.

Если вы знаете, что идентификатор процесса приложения равен 1234, вы также можете прочитать файл /proc/1234/maps, например, набрав в терминале

 cat /proc/1234/maps

Есть также /proc/self/smaps и /proc/1234/smaps, которые немного более подробны.

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