나는 연속적으로 메모리를 할당하고 다른 스레드가 관련 데이터를 처리 한 후에 그것을 해제 할 프로세스가있다. 데이터 처리 속도가 느릴 때 RES 메모리가 증가하는 것을 볼 수 있습니다. 그러나 모든 데이터가 처리 된 후에 RES는 다운되지만 원래 RES 값으로 돌아 가지 않습니다 (10 분을 기다린 후에도).메모리가 해제 된 후 프로세스의 RES 메모리가 삭제됩니까?
10MB (원본) => 50MB (피크) => 30MB (모든 데이터가 해제 된 후)
valgrind를 대용량 메모리와 함께 사용하면 모든 데이터가 해제 된 것처럼 보입니다. 제 질문은 RES가 원래의 10MB로 돌아 가지 않는 이유입니다.
힙의 메모리가 OS에 정확하게 반환 될 때 메모리 할당자가 처리되기 때문입니다. 그러나'mmap()/munmap()'을 사용하여 메모리 할당을 스스로 관리 할 수있다. – Ctx
C 또는 C++? 나는. 'new' 또는'malloc'? – MSalters