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

Delphi 폼 생성과 해제.

2019.09.29 19:59

엽기토끼이요 조회 수:491

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

 

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 17305
공지 유용한 관련 사이트 관리자2 2014.03.20 56188
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99615
2619 [VIP세미나] 비콘의 블루투스 LE 스펙(버전)은 어떻게 되나요? 험프리 2016.11.10 177
2618 델파이 도쿄 리눅스 app 개발 관련 질문 사항입니다. [3] 우진우 2017.07.07 177
2617 delphi 10.2 오류 [1] file midas 2018.08.24 177
2616 C++Builder 최신업데이트(30831)불구 Kinvey 푸시 토큰을 받지 못합니다. 개성산전 2018.10.01 177
2615 PluginMain.pas(14): E2225 Never-build package 'F8PluginCore' must be recompiled file ucucucu 2019.06.24 177
2614 TWebbrowser가 모든 컴포넌트 위로 뜨는 현상 [1] 스머프 2019.08.30 177
2613 MacOS, iOS시뮬레이터로 어플 테스트중인데, dlopen(libmidas.dylib, 1): image not found .... [2] samsmin 2020.03.04 177
2612 fmx TEDIT에 스케너로 입력시 속도개선방법문의드립니다. file 오바라미 2017.03.10 177
2611 TstringList Addobject 질문입니다. [1] 희망나라 2017.03.17 177
2610 national instrument library [1] 한시민 2020.09.03 177
2609 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 4 - Exercise 3 [2] 관리자 2016.04.29 178
2608 스타일 제외 관련 질문드립니다. [1] 나도몰라 2016.10.18 178
2607 아래 1658번 박정희씨 내용과 동일한 오류입니다. [1] 어려워 2016.10.25 178
2606 delphi 실행 시 script 오류가 납니다. [1] file del 2018.01.31 178
2605 [10.3 리오 출시 세미나] 10.2.X 에서 CMake 사용할 수 있게 되었다는데, 사용법에 대한 Tip 없나요? 험프리 2018.11.26 178
2604 MySQL의 JSON 필드 값을 읽어 들이는 방법이 있나요? sihwan 2017.02.25 178
2603 Xe5에서 SDK 삭제후 재 설치 할 수 있나요? [1] 농가사랑 2016.05.12 178
2602 안녕하세요. Undo에 관한 질문입니다. [1] 벌꿀이 2020.11.12 178
2601 [IoT 세미나] 비콘이 사용자를 인식할 수는 없나요? Humphery 2015.09.03 179
2600 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 5 - Exercise 4 [3] 관리자 2016.05.02 179