자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

Delphi 폼 생성과 해제.

2019.09.29 19:59

엽기토끼이요 조회 수:490

안녕하세요. 저번에 질문을 올렸는데 이해가 안 되서 또 질문을 합니다...

 

https://opentutorials.org/course/3108/19310

험프리님이 말씀해주신데로 그대로 따라해 보아도. 메모리가 처음 시작 그 용량으로 돌아오질 않습니다.

 

저번에 답 주신 김원경 선생님의 말대로 폼 변수는 생성하지 않았습니다.

또, 동적 생성될 폼을 Availalbe forms으로 변경했습니다.


코드 입니다.

 

메인 폼의 폼 동적 생성 이벤트. (하나의 폼을 500회 생성 후 클로즈 이벤트 발생)

procedure TForm_Main.Button3Click(Sender: TObject);

var

  i : integer;

begin

  for i := 0 to 500 do begin

    Form1 := TForm1.Create(Nil);

    Form1.Show;

 

    Form1.Close;    //이것만 썻을 때는 모든 폼이 생성된 후에 모든 폼이 다같이 종료.

//    Form1.Free;   //이것도 같이 쓰면 생성 즉시 폼이 제거.

  end;

end;

 

동적 생성폼(Form1)의 클로즈 이벤트.

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

  Action := CaFree;

  Self := Nil;

end;


500회를 다 돌고나면 메모리 용량이 조금 줄어들기는 하는데 처음 실행시 용량으로 돌아가지 않습니다. 

(메모리 확인은 작업관리자의 사용자 탭에서 메모리 카테고리에서 확인 했습니다.)

(추가로 작업 관리자 - 성능 - 리소스 모니터 - 메모리 탭에서도 메모리 사용량을 확인 했습니다. )

 

최초 실행시 1.9MB

500회 실행 후 3.5MB (실행 중간에는 4.0MB까지 증가)

2회 500회 실행 후 3.5MB (실행시 용량이 증가하나 종료된 후에 3.5MB로 돌아옴)

 

제가 원하는 것은 최초 실행시 1.9MB로 돌아가게끔 설계를 하고 싶은데... 1회 실행 후의 용량이 당연한 결과인가요?

제 추측으로는 500회 생성된 변수들이 사라지지 않고 재사용 되고 있기 때문에 3.5MB로 유지되는걸로 보입니다. 메모리에서 완전 해제하는 방법이 없는 것인가요?

 

여러군데 뒤져봐도 생성까지만 설명을 하고 해제에 대해서는 자세한 설명이 없어서 헤메고 있습니다.

귀찮게해드려서 죄송합니다... 너무 궁금한데 물어볼곳이 마땅히 없네요...

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 17210
공지 유용한 관련 사이트 관리자2 2014.03.20 56086
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99524
853 RAD Studio 10.2 Starter 버전에서도 설치 횟수 제한이 있나요? [1] 얼짱나 2017.08.10 131
852 TIniFile 에서 한글을 읽을때 깨집니다. [2] cate 2017.08.10 902
851 [공유] 비콘으로 어린이집 원아 관리해보려고 합니다. 참고할 자료가 있을까요? 험프리 2017.08.11 505
850 libmysqlclient.so error [2] bursil 2017.08.14 162
849 데이터스냅 미들웨에 메소드 호출문의 입니다 천년바우 2017.08.15 131
848 Rest 관련문의 제트콜 2017.08.24 172
847 [공유] INI파일을 다루는 방법이 궁금합니다. 험프리 2017.08.25 662
846 출시앨범 앱 개발 따라하기 질문 [2] file syc 2017.08.25 193
845 Delphi10.2 평가판 사용자입니다. [2] 광개토태왕 2017.08.25 286
844 XE 10.1 Berlin 안드로이드 7 실행이 안되네요 캔나영 2017.08.27 166
843 델파이에서 아래한글 파일을 불러와서 수정 및 편집 후 저장이 가능한지 문의드립니다.., [2] 다반향초 2017.08.28 980
842 Delphi10.2 평가판 안드로이드 7 안되네요,. [3] 캔나영 2017.08.30 198
841 [공유] 파이어몽키 ListView를 정렬하고 싶어요. 험프리 2017.08.31 287
840 [문의] 릴리즈 모드에서 컴파일 시 에러가 발생합니다 [2] file 손보라 2017.08.31 466
839 FTP GET 시 안드로이드 폰에 서 앱이 죽습니다. kerry 2017.08.31 215
838 [문의] Cannot Run on an Android Device or Emulator 오류 입니다 [2] file delphi 2017.09.06 214
837 Datasnap에서 Servercontainer에 timer 컴포넌트 사용 [1] file 파란하늘 2017.09.06 118
836 안드로이드 스튜디오 전화걸기 기능 [1] 서태원 2017.09.06 1427
835 Android Virtual Device 에서 한글 깨지거나 보이지 않는 문제 어떻게 해결하면 되나요? [1] delphi 2017.09.08 115
834 [공유] PDF파일로 저장할 수 있는 컴포넌트가 필요합니다. 험프리 2017.09.08 2818