Q&A

  • 델파이 기본 프로그램의 사이즈 및 메모리 점유율 줄이는 법

델파이에서 프로젝트 생성하구 실행시키구 실행파일의 사이즈를 보면..
363kb 이구, 메모리 점유율이 약 2.8 메가 정도 잡아먹든데,
이걸 어떻게 하면 줄일수 있을까요?

음 간단한 알람 프로그램 하날 만들었는데, 사이즈가 600kb 에, 메모리가
3메가 정도 잡아먹는데, 좀더 줄이는 방법을 알고 싶어서요 ^^;;

그럼 수고하세요~
2  COMMENTS
  • Profile
    김지엽 2002.05.25 19:10
    님이 짜신 소스를 보지 않은 상태에서 뭐가 뭐라고 이야기 하기는 힘들지만, 간단한 알람 프로그램 하나가 그 정도 부하를 먹는다면, 아마도 객체 인스턴스가 불필요하게 많이 생성되어 사용된다고 볼 수 있겠네요.

    한데 구체적인 소스가 없으니 뭘 어떻게 하는게 좋겠다는 구체적인 이야기를 드리긴 어렵겠네여?

    왠만한 객체들은 필요할 때 마다 동적 생성해 주시고, 그리고 필요가 없어지면 반드시 그 시점에 free() 로 풀어주세요.

    전역변수와 로컬변수를 적절히 사용만 해도 메모리가 어느 정도는 줄어듭니다.

  • Profile
    GanJang 2002.05.25 20:28
    답변 감사합니다. ^^
    근데, 기폰 폼 있잖아요?
    델파이 시작하고 어플리케이션 시작하면 나타나는 폼. Project1 이거요.
    이거 컴파일해서 프로그램 크기를 보면, 300kb 넘고 메모리 점유율도 거의
    2.5~3메가 정도 잡아먹느너 같던데(전혀 코딩하지 않은 기본폼 컴파일 상태)
    음. 다른 여타 가벼운 툴보면, 메모리가 1메가도 안잡아 먹거나, 또는
    사이즈 역시 무척 작던데요.
    델파이로 그렇게 할수 있는 옵션이 있는 지 또는 다른 어떠한 방법이 있는지 궁금해서요.
    아무리 코드 최적화를 한다할지라도, 그 이하로 줄이는건 불가능한가요?
    저번에 어디서 예제를 보니깐(파일 분할하는 예제였음), 폼도 없는 프로젝트
    를 만들어서 사이즈를 엄청나게 줄이던데, 그런방법이나 혹은
    유용한 방법이 있으면 좀 알려주셨음 해서요 ^^;
    그럼 좋은 하루 되세여 ^^

    ps1) 객체를 free 시키라고 하셨는데여, 그럼 Timer 같은 컴포넌트나
    아무튼 사용될 컴포넌트를 동적으로 create 시키고 free 시켜서 사용하면
    메모리 줄이는데 도움이 된다는 소리신가여?? 좀더 자세한 ^^;;

    ps2) 사실대로 말씀드리면, 제가 열이 좀 받은 상태에염 ㅡㅡ^
    제가 할줄 아는게 델파이뿐인데, 델파이가 참 좋은 랭귀지툴이라 생각하고 있어염. 근데, 어떤 형이 델파이로 프로그램을 만들면 왜 그리 프로그램 사이즈도
    커지고, 왜그리 메모리도 많이 차지하냐고 하더군여ㅡㅡ;
    그래서 목표가 생겼져, 최적화.............
    어떻게 해서든,, 엄청작아진 프로그램 사이즈와, 메모리점유을을 가진 프로그램을 델파이로 만들어보는것!!! ㅡㅡ^
    감사합니다. ^^;;

    • 정범
    • 2002.05.25 21:00
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 델파이탐크루즈
      2002.05.26 01:16
      Table  콤퍼넌트 쪽에 option에 보시면 Insert, Edit 쪽에 False로 되어있는지 확인하시고... ...
    • 정범
      2002.05.26 18:09
      답변 감사 합니다 그런데 Table 이나 그리드 안씁니다 데이터 소스와 쿼리를 사용합니다 그리고 데...
    • 머슴
      2002.05.27 08:56
        쿼리 컴퍼넌트는 기본적으로 readonly입니다.   따라서 쿼리의 컴퍼넌트에 가...
    • 정범
      2002.05.28 06:57
      감사합니당.. 너무나........... 해결했어여 음... 무지 고생고생 찾다가 보니 update_Query 의 Pro...
    • 델파이탐크루즈
      2002.05.26 00:11
      Function FA_NMFTP(NMFTP :TNMFTP):boolean; begin   NMFTP.Host    := ;...
    • 윤도상
    • 2002.05.25 20:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김도형
      2002.05.25 21:07
      퍼온겁니다.. 예전의 질답 게시판에서염~~~ 함 해보세염~ 1. 메모 초기화   Memo1....
    • 조근영
    • 2002.05.25 20:22
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.05.25 21:24
      안녕하세요. 최용일입니다. Owner나 Tag속성을 이용하시면 될거같네요... A라는 폼을 동적으로 생성...
    • 조근영
      2002.05.27 19:18
      에겅.......  정말 고마워여........ 이젠 돌아갑니다요............ 며칠을 머리 벅벅 뜯...
    • 전원보
    • 2002.05.25 20:08
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김도형
      2002.05.25 21:10
      var   clbl : TComponent;   nI : integer; begin   For nI := 0 to 10...
    • 전원보
      2002.05.26 17:39
      .
    • 나그네
    • 2002.05.25 20:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.05.25 21:32
      안녕하세요. 최용일입니다. 1번, 2번은 폼대신에 TDataModule을 사용하시면 될거 같은데요... 보이지...
    • 김도형
    • 2002.05.25 19:23
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 정용광
    • 2002.05.25 19:02
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김형수
      2002.05.25 19:25
      저두 여기서 자료를 얻어서 연습하고 있는데요. 도움이 됐으면 하네요. .. uses   Windo...
    • 김지엽
      2002.05.25 19:18
      excel 자체를 SQL문으로 처리하는 것은 불가능하다고 생각됩니다. 현재 SQL문이 지원되는 것은 자체 DB...
    • 정용광
      2002.05.25 19:26
      감사합니다.. 우선 프로그램하는 이쪽의 환경으로 하는 것이 아니라.. 저희 프로그램을 사용하는 사용...
    • 한석훈
    • 2002.05.25 19:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2002.05.25 19:06
      델파이 입장에서는 그 DB가 PASSWORD가 있는지 없는지 모르니까 그럽니다. TDATABASE 객체에 ID = "...
    • 한석훈
      2002.05.25 20:51
      님 말씀대로 이렇게 코딩을 했는데요. 그래도 계속 물어보내요. DatabaseLogin이벤트에서 처리를 하...
    • 박상윤
      2002.05.26 01:09
      Direct Input을 사용해보세여.. 마우스 및 사이드와인더 (Force feedbak 포함) 여러장치를 제어 할수 있...
    • GanJang
    • 2002.05.25 07:37
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2002.05.25 19:10
      님이 짜신 소스를 보지 않은 상태에서 뭐가 뭐라고 이야기 하기는 힘들지만, 간단한 알람 프로그램 하나가 ...
    • GanJang
      2002.05.25 20:28
      답변 감사합니다. ^^ 근데, 기폰 폼 있잖아요? 델파이 시작하고 어플리케이션 시작하면 나타나는 폼. ...
    • 유영호
    • 2002.05.25 03:21
    • 6 COMMENTS
    • /
    • 0 LIKES
    • withcount
      2002.05.25 06:51
      select한 데이타만큼 update하는것이기 때문에 update용 query를 하나 더 사용하시기 바랍니다.. 그리고 ...
    • 안광호
      2002.05.25 03:59
      DataSet 이 Close 되어서 발생하는 에러입니다. 아래부분 *** 에서 Close 를 하고 있습니다.  ...
    • 유영호
      2002.05.25 04:07
      님 그럼 어떤 방법이 있을까여... 죄송하지만 한번 더 부탁드립니다.. 초보에게 희망과 용기를..... ...
    • 유영호
      2002.05.25 20:11
      .....
    • 김경록
      2002.05.25 19:01
      Var     lqry_Update: TQuery; Begin       query1...
    • 황선웅
      2002.05.25 19:00
      다른분이 먼저 답변을 주신것처럼 하나의 쿼리 컴포넌트로 Data를 fetch하고 for문을 실행중 Update를 하...
    • 박성환
    • 2002.05.25 02:28
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이호성
    • 2002.05.25 02:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.05.25 04:03
      안녕하세요. 최용일입니다. fData가 TDataRtn형인가요? 그럼 Data필드가 포인터형이니까, 포인터를 넘겨...
    • 최성원
    • 2002.05.25 01:59
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안광호
      2002.05.25 04:02
      C++ 에서 LPCSTR 로 사용하셨다는 것은 포인트를 말하는 것 같습니다. 델파이에서 이경우  선언...
    • 최용일
      2002.05.25 04:00
      안녕하세요. 최용일입니다. Calling Conversion확인해보세요. stdcall인가 cdecl인가... 그리고 파라...
    • 백록화
      2002.05.25 03:07
      yo` 안녕하세요 백록화 입니다. :) 손쉬운방법으로 load_file() 이라는 MySQL함수를 사용하는것입...
    • 최용일
      2002.05.25 03:52
      안녕하세요. 최용일입니다. 자료실에 보시면 메인메뉴 맘대로 꾸미기란 예제가 있을겁니다. 그거 참고하...
    • 유현성
    • 2002.05.25 01:16
    • 0 COMMENTS
    • /
    • 0 LIKES