Q&A

  • 실행프로그램(EXE)의 크기와 운영체계및PC의 성능과의 관계를 ?
프로젝트를 컴파일 하면 EXE화일이 생기는데 이화일의 용량과
실행프로그램을 운용할 PC의 성능(386,486,586... 메모리128MB,256MB)과
운영체계(WIN98,WINME, XP..)과의 관계을 알고 십습니다.

특히 PC의 성능이나 운영체계에 따라서 실행화일의 크기가 제한되는지?
제한된다면 제한되는 계산식이나 수치와
어떻게 개발하는것이 제일 합리적인지도 알고 십습니다...
2  COMMENTS
  • Profile
    이강석 2003.04.25 18:42
    답변이 없어서 저도 몇자 적습니다.
    일반적으로 OS는 메모리에 EXE실행화일을 로딩합니다.
    DLL은 물론 아니고요(점프하는 방식으로 작동)
    10MB크기라면 이 실행화일의 범위(bound)는 그 크기가 되는거죠...
    물론 그 안에 동적 메모리할당이나 이런 부분이 들어가는 건 다른 메모리 공간을 사용하지만(이런 건 운영체제를 공부하세요)...
    일반적으로 지금 사용하는 2000계열의 OS는 제가 알기로는 정확한지는 몰겠는데.. 2GB까지 메모리를 맵핑할 수 있는 걸로 알고 있습니다.
    그래서 어지간히 크지 않은 프로그램이라면....대부분 다 작동하는 거죠...
    맵핑이라고 말하는 건 일반적으로 메모리에서 실행프로그램을 엑세스 할려면 주소를 참조해야 하는데...그 메모리 포인터를 저장할 수 있는 크기가 2000계열이 32비트(?정확하지 않음 ..오래되서)크기이므로 이걸 주소값으로 환산하면 아마도 2GB가 나오지 않을까 생각합니다...
    CPU는 실제 프로그램 크기와는 별로 관계가 없습니다.
    다만 실제 CPU에 들어가 있는 레지스터의 크기는 CPU에 따라 다를 수 도 있지만....현재 사용하는 CPU는 거의 관계가 없다고 보셔도 관계없습니다..
    참고로 더 자세한 사항을 알고 싶으시다면....어셈블리어나...운영체제에 관한 잭을 추천합니다...그럼 즐프하세염...
    참고로 틀린 내용이 있으면 리필 달아주세요...저도 하도 오래되서리...

  • Profile
    델피언 2003.04.25 09:23
    질문하신 내용이 너무 전문적이라 부합되는 결과는 한국마이크로소프트에서 정보를 얻는게 빠를듯 싶습니다.

    참고 : 대부분 실행파일 크기와 상관관계는 없습니다.
    만약 시스템메모리보다 큰 파일이고, 점유 메모리를 윈도우에서 할당 못받는다면 실행 자체가 되지 않을 것입니다.
    그리고 윈도우NT/2000/XP의 경우 리소스 에러가 발생하지 않지만,
    윈 95/98/ME의 경우 리소스 에러가 치명적이며 해결할 방법이 없습니다.
    참고하십시오.

    • 이말자
    • 2003.04.25 19:35
    • 0 COMMENTS
    • /
    • 0 LIKES
    • C#MAN
    • 2003.04.25 11:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 가츠
      2003.04.25 19:21
      예전에 아는 형님이 그런 비슷한 문제로 고생을 한적이 있습니다. 결국엔 버전을 업그레이드 해서 해결했...
    • 코마
      2003.04.25 19:01
      음..저도 비슷한 경험을 한적이 있는데... 소스는 아무리 봐도..이상이 없는데... 데이타가 누락되는 경...
    • 장경석
    • 2003.04.25 07:54
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 조헌철
      2003.04.26 00:41
      function TPoto_capture.Get_IHTMLDocument2: IHTMLDocument2; var   pIOleObject : IOleObj...
    • 장경석
      2003.04.30 01:43
      답변의 함수를 어찌 사용하는지요..... 님의답변을 보면서 저의 무지를 느끼는 군요.... 죄송합니다. 자...
    • 김종호
    • 2003.04.25 07:26
    • 2 COMMENTS
    • /
    • 2 LIKES
    • 이강석
      2003.04.25 18:42
      답변이 없어서 저도 몇자 적습니다. 일반적으로 OS는 메모리에 EXE실행화일을 로딩합니다. DLL은 물론 아...
    • 델피언
      2003.04.25 09:23
      질문하신 내용이 너무 전문적이라 부합되는 결과는 한국마이크로소프트에서 정보를 얻는게 빠를듯 싶습니다...
    • 김동석
    • 2003.04.25 04:11
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 유창원
      2003.04.25 21:56
      TTable은 안써봐서 잘 모르겠지만 TQuery를 사용해 보심이 어떨런지. 타이틀이 클릭되면 TColumn이 파라미...
    • 김시준
      2003.04.25 18:40
      인덱스를 미리 생성시켜 놓은 다음 아래와 같이 하면 됩니다.       IF ...
    • 우연짱
      2003.04.25 07:10
      오랜만에 글 올리네요.. ^^;; 제어판에 보시면 사운드라는게 있쬬? 상황이라고 써진 목록에서 ...
    • 이재현
      2003.04.27 02:27
      안녕하십니까? 답변 감사드립니다. 이 것을 프로그램화 시켜서 소리를 없앨려면 어떻게 하면 되는지 ...
    • 우연짱
      2003.05.01 02:04
      레지스트리를 수정하는게 어떨까여? 밑의 레지값에 null 주면 암소리도 안나니까.... 레지관련 플그...
    • 김시준
      2003.04.25 18:36
    • 김명석
      2003.04.25 18:42
    • 오병주
      2003.04.25 19:21
    • 김명석
      2003.04.25 20:24
    • 김명석
      2003.04.25 21:08
    • 오병주
      2003.04.25 22:22
    • 김명석
      2003.04.25 23:29
    • • • •
    • 오병주
      2003.04.25 05:06
      두장이라는것이 같은 내용이 Detail부분이 넘어가는것 을 말씀하시는건 아닌것 같고... 폼이 서로 ...
    • 조정연
    • 2003.04.25 02:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이대봉
      2003.04.25 04:28
      아래거는 잘되거든요... 함 해보세요... SELECT Collection.User_Key, Collection.Total_Sum FROM "U...
    • 김재현
    • 2003.04.25 01:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      2003.04.25 02:21
      이런 식으로 하면 될꺼 같은데요.. Last_Aver := Round(Last_Aver * 10000) / 10000 EdtPlatthk.Text :...
    • 최용일
      2003.04.25 01:33
      안녕하세요. 최용일입니다. 쩝~ WinRar가 없네요... ㅠㅠ 암튼 무슨 말씀이신지는 알겠네요... 이...
    • 문상용
      2003.04.25 01:48
    • 김대옥
    • 2003.04.25 00:30
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 정수지
    • 2003.04.24 23:48
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.04.25 00:56
      안녕하세요. 최용일입니다. MDB든 Paradox든 별반차이없는데요... DB만 다를 뿐이지 사용하는 것은 같아...
    • 이진형
      2003.04.25 03:58
      안녕하세요. 이진형입니다. 간단한 입력 프로그램입니다. 먼저 DB연결은 제어판에 ODBC Data Source...
    • 루단스
      2003.04.25 00:10
      그렇게..바로연결시키고... 아래서..소켓이연결됬는지 체크하는것은....안됩니다. 꼭 연결을 확인...
    • 양흥식
      2003.04.25 00:20
      첫번째 답변 감사드리구요. 제가 구현할여는건 이런식으로 해서 1번 서버가 동작하면 2번서버도 동작중...
    • 루단스
      2003.04.25 00:44
      1, 2번 모두 연결
    • 양흥식
      2003.04.25 01:20
    • 문상용
    • 2003.04.24 22:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.04.24 23:26
      안녕하세요. 최용일입니다. TDirectoryListBox의 경우는 Directory속성에 해당 폴더를 넣어주시면 됩니...
    • 문상용
      2003.04.25 00:15
      아래처럼 디렉토리를 지정해주면 검색이 되는데  디렉토리를 어떻게 지정해져야  하위...
    • 최용일
      2003.04.25 00:40
      안녕하세요. 최용일입니다. 질문하신 의도가 이것이 맞는지 모르겠네요... 쩝~ DirectoryListBox1.Di...
    • 최용일
      2003.04.24 23:23
      안녕하세요. 최용일입니다. Paint메소드 오버라이드해서 사용하세요... 이 메소드에서 캔버스에 그리...
    • [++曰+]
      2003.04.24 21:08
      아래와 같이 하시면 됩니다.. 그럼 즐코.. procedure TForm2.Button1Click(Sender: TObject); var ...
    • 조헌철
      2003.04.24 21:20
      부모폼이 아니라 activeX폼에서 호출 해야되거든요 제가 질문을 잘못 드렸네요 답변 부탁드립니다. 그럼...
    • 최석기
      2003.04.25 02:25
      아마도 ActiveX Form이 부모폼이 되나본데요.. ActivX Form을 생성시 자동으로 생성되는 코드에서 일반 ...
    • 조헌철
      2003.04.25 03:58
      그림이 잘 안 그려져서 그러는데 시간이 되시면 예제 하나만 부탁드립니다. 그럼 이만
    • 최용일
      2003.04.24 23:38
      안녕하세요. 최용일입니다. 그냥 하나의 폴더에다가 파일을 넣어두시고, 두개의 프로젝트에서 그 파일을...