Как программно получить использование памяти текущей программой? - PullRequest
0 голосов
/ 16 апреля 2020

Я хотел бы получить некоторую информацию об использовании памяти моей программой на C ++. Я делаю это путем доступа к /proc/self/stat и распечатки виртуального и резидентного набора.

Вы можете найти пример здесь .

Это хороший способ? до go? Насколько точна информация, к которой я обращаюсь *?

Может ли кто-нибудь порекомендовать лучший способ программного измерения нагрузки на память?

* Спрашиваю, потому что я получаю неожиданные, внезапные скачки использования памяти. Я ожидал, что информация будет абсолютно точной.

ОС: Я работаю в контейнере docker, основанном на RHEL.

Дополнительная информация: Если Ограничение использования памяти контейнера ограничено docker run -m, объем напечатанной памяти превышает установленное ограничение.

1 Ответ

2 голосов
/ 16 апреля 2020

Как программно получить использование памяти текущей программой?

Не существует стандартного способа получить использование памяти программой на C ++.

Концепция «использование памяти» само по себе несколько расплывчато и может означать разные вещи. В зависимости от того, что вы имеете в виду, система может указывать или не указывать c способ получения информации.

Я делаю это, обращаясь к /proc/self/stat

Это хороший способ для go?

Я так не думаю. Насколько я знаю, файловая система / pro c не является переносимой. Используйте функцию getrusage в системах POSIX.

...