[완료] AIX malloc - free 시 혹은 new - delete 시의 메모리 반환

hiraga의 이미지

안녕하세요 코딩하다가 삽질하다가 의문의 생겨 질문 올립니다.

동적 메모리 할당에서요
malloc / new 를 하고서
free / delete를 했는데 프로세스가 OS로 메모리 반환을 하지 않네요...

pa aux | grep "프로세스명" 해서 메모리 체크를 하는데요...
뭣땜에 그런건지.. 힌트라도 부탁드려요
뭘 놓지고 있는건지 ㅠㅠ

버전은 AIX 5.2이고 컴파일러는 xlC_r 입니다;

klara의 이미지

저도 주워들은 거라 확실친 않지만, 보통 메모리해제를 하면 다시 그부분에 할당할 수 있도록만되고 실제로 메모리가 반환되는건 프로그램이 종료될때라고 들은 적이 있습니다.
자세한건 다른분이 설명해주시기를-_-;;

imurside의 이미지

퍼온 글입니다. 참고하시길..

AIX 에서 malloc, free 사용시 프로세스의 메모리 사용을 모니터링하면 free 시 메모리가
커널에 원하는 만큼 반환되지 않는 것을 알 수 있습니다. 이는 커널에서 메모리 사용효율을
극대화 하기 위해 AIX 가 사용하는 내부 아키텍쳐에 기반한 지극히 정상적인 현상입니다.

따라서 메모리 할당/해제 관련 malloc, free 사용시 메모리의 효율적 사용을 고려한 AIX 의
기본처리 방식을 무시하고 함수이름 그대로 메모리를 할당/해제 하고자 한다면 해당
프로그램에서 메모리 free 시 disclaim 함수를 free 에 앞서 추가로 호출하거나 AIX 5.2 의
경우 프로그램 시작 전에 다음의 환경변수를 set 하면 됩니다.

MALLOCDISCLAIM=true

------------------------ AIX 에서의 메모리관리 기본방식 ----------------------------

When you free memory it does not go back to the system in case you need to use the
same amount of memory again.

we will use disclaim() instead of free which really returns the memory or associated
paging space to the system.

It is not sufficient to use the free() subroutine to free the space that was allocated with
the malloc() or calloc() subroutines. The free() subroutine releases only the address
range that the structure occupied. To release the real memory and paging space, use
the disclaim() subroutine to disclaim the space as well.The call to disclaim() should
be before the call to free().

hiraga의 이미지

매우감사^^ㅋㅋ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.