프로그램 메모리 소비를 측정하는 편리한 도구

프로그램 메모리 소비를 측정하는 편리한 도구

저는 Debian에서 C 코드를 개발했습니다. 내 코드의 메모리 소비를 실시간으로 모니터링하는 프로그램을 찾고 있습니다. 내가 관심을 갖는 유일한 값은 최대 RAM 소비량이며, 프로그램이 종료되더라도(예: SIGKILL을 통해) 해당 값을 유지해야 합니다. 누구든지 편리한 도구를 추천할 수 있나요?

보통 을 사용하는데 top -p pidnumber출력이 너무 많이 지연되고 프로그램이 종료되면 종료되기 전에 RAM 소비가 표시되지 않습니다.

답변1

Valrind 도구 Massif를 사용할 수 있습니다.

valgrind --tool=massif prog

기본적으로 사용된 힙 메모리의 그래프를 생성하지만 사용된 스택 메모리도 표시할 수 있습니다.

valgrind --tool=massif --stacks=yes prog

Valgrind는 프로그램 실행 속도를 늦추는 경향이 있으므로 응용 프로그램을 실행하는 데 오랜 시간이 걸리는 경우 주의하십시오.

Massif에 대한 더 많은 정보를 원하시면 추천합니다Valgrind 문서이것은 매우 좋습니다.

답변2

toptop -d delay상단의 또는 를 눌러 지연을 변경할 수 있습니다 s.

초당 상주 크기를 얻으려면 다음을 수행하십시오.

while rss=$(ps -o rss= -p "${pid?}") && printf '\r%d' "$rss"; do
  sleep 1; done; echo

또는 더 흥미롭게 보려면 다음을 수행하세요.

sp="/-\|"
while rss=$(ps -o rss=,args= -p "${pid?}") && printf '\r[%c]%s' "$sp" "$rss"; do
  sleep 0.5; sp=${sp#?}${sp%???}; done; echo

관련 정보