Search results for '2016/11'

Out of memory 오류 해소 방안

2016.11.21 10:42

메모리 부족(Out of memory) 오류 해소 방안을 델파이 기준으로 설명합니다.

증상

윈도우즈 기반 애플리케이션 시작 또는 실행 중 Out of memory 예외(Exception)이 발생



원인

  • 데스크탑 힙 제한에 의한 메모리 부족
  • 메모리 누수(Leak)에 의한 메모리 부족
  • 과도한 메모리 사용에 의한 메모리 부족


    조치방법

    데스크탑 힙 제한에 의한 메모리 부족

    데스크탑 힙 제한에 의한 메모리 부족 오류가 발생할 수 있습니다.

    마이크로소프트 지원 페이지에서 레지스트리를 수정하는 해결 방법을 안내합니다.


    메모리 누수(Leak)에 의한 메모리 부족

    프로그램내에서 할당된 메모리를 사용 후 반환하지 않는 메모리 누수가 반복될 경우 메모리 부족이 발생합니다.


    델파이에서는 FastMM 메모리 관리자(2006 이후 기본 제공)의 정지 시 메모리 누수 보고 기능을 이용해 애플리케이션 종료 시 메모리 누수 보고를 받을 수 있습니다.


    종료 시 메모리 누수 보고 기능을 활성화 하려면

    • System.ReportMemoryLeaksOnShutdown 전역 변수를 True로 설정합니다.

    기타 자세한 내용은 아래 엠바카데로 기술문서를 참고하시기 바랍니다.


    과도한 메모리 사용에 의한 메모리 부족

    시스템 상의 메모리보다 과도한 메모리를 사용한 경우 메모리 부족 오류가 발생할 수 있습니다.


    이경우 작은 범위의 테스트에서 문제가 발생하지 않다가, 실사용 시 문제가 발생할 수 있습니다.

    보통 다수의 UI 컨트롤들을 갖는 화면 여러개를 동시에 표시하거나, 다수의 응용 프로그램을 동시에 실행하는 경우 발생할 수 있습니다.


    이 경우 구현상의 이슈보다는 운영상의 이슈이므로, 운영 중 사용자의 메모리 상태를 모니터링 하고, 동시에 표시할 수 있는 화면을 제한하는 등의 과도한 메모리 사용 방어 장치가 필요합니다.


    저작자 표시 비영리 동일 조건 변경 허락
    신고
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    험프리.김현수 험프리.김현수 Delphi/C++Builder