메모리 감소하는 현상
글쓴이: linuxs / 작성시간: 월, 2005/01/31 - 11:29오후
시를 이용해서 서버 프로그램을 작성중입니다.
그런데 free로 명령을 쳤을때 남아있는 메모리가 계속 4Byte씩 감소합니다.
select를 이용해서 접속하는 클라이언트에게 데이타 받고 머 그런 프로그램인데 왜 그런 현상이 발생하는지 모르겠습니다.
malloc하고 free는 반드시 했습니다.
일반적으로 함수 호출시 함수 종료하면 함수에서 사용하고 있는 메모리는 모두 제거 되는 걸로 알고 있는데
혹시 사용중인 메모리가 계속 들어나는 현상이 어떤때 발생하는지 조언 부탁드립니다.
Forums:
보통은 glibc를 쓰니, 프로그램을 실행할 때, memusage를 먼저
보통은 glibc를 쓰니, 프로그램을 실행할 때, memusage를 먼저 써 보기 바랍니다.
memusage program_name argument...
그리고 프로그램을 정상 종료 시키고 (daemon이 아니라는 가정아래에, 꼭 exit()를 부르거나 main()이 정상 종료해야만 함.) 나면, malloc()의 횟수와 free()의 횟수를 알려 줍니다. 이 수치가 서로 같다면 leak는 없는 것이고, 그렇지 않다면 leak가 있으니 확인해야 합니다.
x86이면, valgrind로 해도 같은 결과를 얻을 수 있습니다 (사실 valgrind가 훨씬 성능이 뛰어납니다.)
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기