자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 17242
공지 유용한 관련 사이트 관리자2 2014.03.20 56128
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99561
2619 [질문] XE7에서 CPORT 컴파일 후 인스톨 시 에러 file 신지 2015.02.09 785
2618 xe2 한글 전체 찾기시 문제점 [2] 미키네 2015.02.10 673
2617 LiveBinding Format 변경관련 문의 희망 2015.02.10 596
2616 VCL로 프로그램을 작성해서 버튼을 배치했는데, 실행된 상태의 화면에서 마우스로 버튼을 끌어서 옮길수 있는지 [1] 관리자 2015.02.12 598
2615 XE2에서 사용할 수 있는 "version control"이 무엇이 있을까요? [1] 관리자 2015.02.12 644
2614 앱 개발시 HTML 미리보기 [1] 사랑남 2015.02.12 878
2613 임베디드 디비(IBLITE)를 사용하는 앱을 만들었습니다. 어려워 2015.02.13 934
2612 OCX등록 (주)머든 2015.02.14 1252
2611 폰에 존재하는 call log(즉 수발/발신) 목록 가져오기 [1] 솔루피온 2015.02.16 681
2610 JAR 추가와 관련해서 질문드립니다. [1] newbe 2015.02.16 611
2609 아이폰 쪽 연동 부분에 에러 해결방안 문의 [1] file radio 2015.02.16 1270
2608 MS-SQL에서 데이터 처리에 대한 오류.. 이노베이션 2015.02.18 1678
2607 Appmethod 사용시, 안드로이드 시뮬레이터 에러 [1] radio 2015.02.23 829
2606 [XE6] 안드로이드 웹브라우저로 띄우기 [1] 가을이다 2015.02.23 1324
2605 JVL이라는 라이브러리 관련에러 [1] secret 관리자 2015.02.25 1
2604 xe7 앱개발 [1] file 사랑남 2015.02.25 782
2603 [XE6] 컴포넌트 기본폰트 설정법 가을이다 2015.02.26 811
2602 [XE7] 샘플 프로그램 속도 문제 [1] 마로 2015.02.26 805
2601 델파이로 패키지 소프트웨어개발관련한 문의드립니다. [1] secret 베스트드레곤 2015.02.27 8
2600 자동완성 기능에 대해서 문의 드립니다. [3] newbe 2015.02.27 1956