Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[7838] Re:[질문] 델파이 어플리케이션들...
박지훈.임프 [cbuilder] 650 읽음    2001-12-31 21:58
아래 류종택님 말씀처럼, 델파이로 만든 어플리케이션만 그런 것은 아닙니다.
모든 윈도우즈 어플리케이션은 실행파일 자체의 크기보다 더 많은 메모리를 차지하는데,
그 이유는 dll들을 사용하기 때문입니다.

Win32 프로그램에서 dll을 로드하면 dll은 실제로 메모리를 차지하는 것이 아니라,
단지 프로그램의 가상 메모리상에 매핑됩니다.
또한 dll의 개념 특성상, 일반적인 경우에는 현재 시스템에서 이미 로드되어 있는 경우
다른 프로그램에서 다시 그 dll을 호출하더라도 실제 메모리를 차지하는 것이 아니라
이미 로드되어 있는 dll 메모리를 현재 프로그램의 가상 메모리에 매핑시키기만 합니다.

그러므로, dll에 의해 차지되는 메모리 영역은 그 프로그램의 메모리 영역으로 계산되기는 하지만
역시 다른 프로그램에게도 매핑되어 있으므로, 실제 메모리의 dll 영역은 공유되어 있다고 볼 수 있습니다.

Win32 어플리케이션은 엄격히 따지면 절대로 완전히 독립적인 프로그램이 될 수 없습니다.
왜냐하면, 기본적으로 윈도우즈의 기본 dll들인 Kernel, GDIO, User dll이 매핑되고,
그외에도 10~20개의 dll들이 서로간의 종속관계를 가지고 기본적으로 로드되기 때문입니다.
그럼에도 독립적인 프로그램인 것처럼 보이는 것은 단지 이들 dll들이 모든 Win32 OS에 기본으로
깔려있는 때문입니다.

그럼...


오땅 님이 쓰신 글 :
:
: 델파이로 빈 폼 하나를 만들어서 실행해 보면
: 실행화일 크기는 280K정도인데 실행해 보면 메모리에는 2M가 넘게 차지하는군요.
: 실행된 폼을 Minimize 시켰다가 다시 Restore해보면 메모리를 800K 정도밖에
: 차지하지 않습니다.
:
: 왜 그런지 궁금하네요.  컴파일 할때 무슨 옵션을 주어야 하는건지.
: 처음 실행 될때부터 800K정도만 차지하게 할수는 없나요?
:
: 제가 만든 프로그램 하나는 실행화일 크기가 1M 조금 넘는데
: 실행해 보면 메모리를 8M나 잡아 먹습니다.
: 윈도우를 Minimize 했다가 다시 올리면 1M 조금 넘던데......
: 그렇다고 실행한담에 항상 윈도우를 Minimize했다가 다시 올릴수도 없고..
:
:
: 원인을 알고 싶습니다.   도와주세여~~
:

+ -

관련 글 리스트
7826 [질문] 델파이 어플리케이션들... 오땅 546 2001/12/27
7838     Re:[질문] 델파이 어플리케이션들... 박지훈.임프 650 2001/12/31
7827     Re:[질문] 델파이 어플리케이션들... 류종택 654 2001/12/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.