30 개의 응용 프로그램이 실행되는 꽤 복잡한 시스템이 있습니다. 아주 복잡한 C++ 응용 프로그램 중 하나가 메모리를 유출하고 있었고 문제가 해결되었다고 생각합니다. 내가 지금까지했던 어떤응용 프로그램에서 메모리 누수를 감지하는 방법은 무엇입니까?
은 다음과 같습니다
- 나는 valgrind's memcheck를 사용하여 응용 프로그램을 실행, 그것은 아무런 문제가 발견되지.
- 나는 htop를 사용하여 응용 프로그램을 모니터링, 나는 가상 잔류 메모리가 나는 그것이 새로운 메모리를 사용하는 경우 valgrind's massif를 실행하고보고 기획하고
- 증가하지 않는 것으로 나타났습니다
질문은, 어떻게 내가 할 수있는 누출이 없는지 확인하십시오. 나는 가상 메모리가 증가하지 않으면, 누수가없는 것을 확신 할 수 있다고 생각했다. 응용 프로그램을 테스트 할 때 메모리가 할당되고 할당 해제 된 루프를 트리거하여 여러 번 확인합니다.
응용 프로그램이 메모리를 할당하는 조건을 알고 있으며, 물론 응용 프로그램을 테스트하기 위해 트리거합니다. 문제는 누출이 없는지 확인할 수 있습니까? –
할당 된 메모리가 다시 해제되어야 할 때 (특히 특정 시점 또는 다른 이벤트) 응용 프로그램의 내부 작업 흐름을 알아야합니다. – scai
응용 프로그램의 내부 작업 흐름을 알고 있습니다. 내가 만들었지 :) 또한 단위 테스트와 기능 테스트를 만들었지 만 메모리 누수를 놓치기에는 충분하지 않았습니다. –