안녕하세요 ...
MID 스타일의 Application 을 작성 했다가 Form 이 너무많아서 ( 30 여개)
사용할때 Memory 를 너무 많이 쓰거든요
그래서 Child Form 을 모두 DLL 로 작성 했읍니다
실행상의 문제는 없고요 Program 도 잘돌아 갑니다
그런데 문제는 정적 Program 은 Data 가 실리지 않은상태에서
Memory 가 8.7 MB 정도가 소요됩니다
그런데 DLL 로 작성된 Program 은 DLL Form 을 모두 Load 하면
Data 실리지 않은상태에서 13.2 MB 가 소요됩니다
물론 사용자 가 모든 Form 을 Load 하지는 않으니 쓰임새로 보면 Memory 가
절약 되지만 원론적으로 이런현상이 잘이해가 되지 않읍니다
동일한 Form 을 정적으로 Load 한상태와 DLL 로 Load 상태가
비슷한 정도의 Memory 를 점유하도록 하는게 가능한것인지
가능 하다면 어떤 부분을 최적화 해주어야 하느지 고수님들의 의견 부탁드림니다
... 수고 하시고요 좋은 성탄 보내십시요 ....
> 안녕하세요 ...
>
> MID 스타일의 Application 을 작성 했다가 Form 이 너무많아서 ( 30 여개)
> 사용할때 Memory 를 너무 많이 쓰거든요
> 그래서 Child Form 을 모두 DLL 로 작성 했읍니다
> 실행상의 문제는 없고요 Program 도 잘돌아 갑니다
>
> 그런데 문제는 정적 Program 은 Data 가 실리지 않은상태에서
> Memory 가 8.7 MB 정도가 소요됩니다
>
> 그런데 DLL 로 작성된 Program 은 DLL Form 을 모두 Load 하면
> Data 실리지 않은상태에서 13.2 MB 가 소요됩니다
>
> 물론 사용자 가 모든 Form 을 Load 하지는 않으니 쓰임새로 보면 Memory 가
> 절약 되지만 원론적으로 이런현상이 잘이해가 되지 않읍니다
>
> 동일한 Form 을 정적으로 Load 한상태와 DLL 로 Load 상태가
> 비슷한 정도의 Memory 를 점유하도록 하는게 가능한것인지
> 가능 하다면 어떤 부분을 최적화 해주어야 하느지 고수님들의 의견 부탁드림니다
>
> ... 수고 하시고요 좋은 성탄 보내십시요 ....
>
>
제 견해 인데 참고하십시오.
DLL이나 Form이냐의 차이가 아니고, 동적으로 Load했는지, 아닌지의
차이인거 같네요.
DLL이나 Form은 정적으로 로드되면 프로그이 시작될때
메모리에 올라가게 됩니다.
물론 프로그램이 종료될때까지 메모리를 점유하고 있지요.
DLL이나 폼을 동적으로 로드하게 되면 로드된 DLL이나 폼만
메모리에 올라가고 Free할땐 더이상 메모리를 차지하지 않죠.
가능하다면 동적으로 로드하고, 다시 Free되는 형태로
개발하신다면 메모리 사용을 줄일수 있을것 같습니다.
그럼, 즐거운 프로그래밍이 되시길~