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

C++빌더 Q&A
C++Builder Programming Q&A
[47136] Re:어느 무료 Compiler를 쓰고 있는데요, 실행파일이 Build할때마다 똑같지 않고 게다가 놀랍게도..
열씸! [cappuccino] 1134 읽음    2006-11-19 02:39
종합하자면, 컴파일러의 문제도 운영체제의 문제도, PE 파일포맷의 문제도 아닙니다.
어떤 분이 스태틱 영역 할당을 크게 하면 실행화일 크기도 커진다고 말씀하셨지만,
사람이 만드는 이상, 그런 황당한 컴파일러도 물론 있을 수 있겠지만, 제가 쓰는 컴파일러들 중엔 없습니다.

그 원인을 설명드리자면,
화일처리론을 공부하신 분들이라면 익히 알고 있을 문제이네요.

600MB짜리 화일을 생성하는 가장 간단한 방법은,
파일 포인터를 600MB위치로 이동 시키고 (fseek, lseek등)
1Byte 쓰는것입니다.
이 경우, 램에 있는 내용이 화일에 저장할 용량만큼 그대로 화일로 덤프되게 됩니다.
화일시스템의 특징이지요.
특정 위치까지 억세스 한다는건, 그 사이의 범위도 읽고 쓸 가능성이 있는 것이고,
이 때 읽고 쓰는 경우를 최적화 하기 위해서 32비트 보호모드 환경에서는,
화일에 읽고 쓸 영역 만큼을 기본적으로 메모리와 사상시키기 때문입니다.
그렇게 해 두면, Multi-programming 환경이 보다 쉽게 구현되는 것이지요.
IO에 의한 병목이 없는.

아마도, 해당 컴파일러에서는
손쉽게 메모리 참조 테이블을 구현하기 위해
필요 크기만큼을 미리 잡아 놓고, 그 위치를 수정하는 형태로(append가 아닌 rewritable로)
화일에 억세스 하였고,
정작 그리 해 놓은 뒤에 사이 사이 변경되지 않은 영역을 내버려 둔 형태로 실행화일 생성을
완료해 생긴 문제인 것이죠.

즉, 정상적인 컴파일러라면, 스태틱영역을 크게 잡는다고 실행화일의 크기가 커지지 않습니다.
운영체제론을 공부하신 분이라면 익히 아시겠지만,
대부분의 실행화일의 포맷에서,
0을 제외한 정적 영역의 정보와, 리터럴 문자열을 비롯한 변경될 데이타들을 화일에 저장할 뿐이지,
char temp[1000000]; 과 같은 코드를 전역변수로 집어 넣는다해서
실행화일이 1메가를 넘어가진 않습니다.
이 경우는 실행시간에 할당되고, 0으로 초기화 될 따름이니까요.

+ -

관련 글 리스트
47120 어느 무료 Compiler를 쓰고 있는데요, 실행파일이 Build할때마다 똑같지 않고 게다가 놀랍게도.. 늙은 초보 1184 2006/11/16
47136     Re:어느 무료 Compiler를 쓰고 있는데요, 실행파일이 Build할때마다 똑같지 않고 게다가 놀랍게도.. 열씸! 1134 2006/11/19
47132     Re:어느 무료 Compiler를 쓰고 있는데요, 실행파일이 Build할때마다 똑같지 않고 게다가 놀랍게도.. 아제나 1274 2006/11/17
47134         Re:Re:어느 무료 Compiler를 쓰고 있는데요, 실행파일이 Build할때마다 똑같지 않고 게다가 놀랍게도.. 늙은 초보 1072 2006/11/17
47135             Re:Re:Re:어느 무료 Compiler를 쓰고 있는데요, 실행파일이 Build할때마다 똑같지 않고 게다가 놀랍게 마술감자.명국진 1095 2006/11/18
47133         Re:Re:어느 무료 Compiler를 쓰고 있는데요, 실행파일이 Build할때마다 똑같지 않고 게다가 놀랍게도.. Sexyguy™*^^* 1263 2006/11/17
47126     Re:어느 무료 Compiler를 쓰고 있는데요, 실행파일이 Build할때마다 똑같지 않고 게다가 놀랍게도.. 로리시아 1114 2006/11/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.