아시다시피 BDS2006에서는 새로운 메모리 매니저를 도입해서 메모리 관리가 획기적으로 좋아졌습니다.
메모리 할당이 많이 관련된 루틴을 쓴다면 성능상으로 확실히 빨라졌다는 것을 느낄 수 있죠.
이것은 류종택님이 마소에 기고하신 BDS2006 리뷰 기사에 좋은 예제가 있고요.
그런데... 성능 뿐만 아니라, 메모리 리크 관련으로도 확실히 좋아진 것 같습니다.
여러분이 지금 보시고 계시는 이 게시판... 주소에서 보시다시피 dll이고, 델파이와 C++빌더를 반씩 섞어서 만든 겁니다.
이걸 처음 만들었던 것이 99년 중반쯤이었던가? 그랬는데.. 그때부터 지금까지 주욱 계속 저를 괴롭혀왔던 문제들 중
하나가 이 ISAPI dll의 인스턴스가, 실행 시간이 꽤 지나고 나면 메모리를 너무 많이 차지하고 있다는 겁니다.
처음 실행 직후에는 이것저것 로딩하는 것을 합해서 10메가가 조금 넘는 메모리를 차지하게 되는데, 일주일이나 몇주쯤
지난 후 작업관리자에서 살펴보면 백메가 이상을 잡아먹고 있는 것을 볼 때가 종종 있습니다. 저는 이게 제가 잘못해서
그런 것이 아닌가 하고... '스치는 바람에도 괴로와했습니다'
그런데.. 한두달쯤 전에 똑같은 소스를 BDS2006의 C++빌더로 컴파일해서 올리고 나니...
헉! 일주일이나 이주일쯤 지나도 처음 로딩 직후의 메모리에서 거의 늘어나질 않는 겁니다!!! 이렇게 좋을 수가!!!
소스에 어떤 변경도 없이, 단지 BDS2006에서 다시 컴파일만 했을 뿐인데도 말이죠.
델파이, C++빌더가 버전업될 때마다 VCL이 같이 업그레이드되기는 하지만 그렇게 혁신적인 변화는 많지 않거든요.
그리고 매번 변경되는 VCL 소스들은 대부분 제가 살펴봐왔기 때문에, 메모리 관리 관련으로 이정도로 크게 개선될 만한
부분은 없는 걸로 생각하고 있습니다.
결국, 역시 새로운 메모리 매니저가 혁신적으로 개선되어서 이전에 발생했던 자잘한 메모리 리크들이 거의 다 잡혔다고
밖에는 생각할 수 없는 것 같습니다. 성능면과 안정성면 양쪽 모두 대폭 개선된 BDS2006, 넘넘 맘에 듭니다. ^^
서버쪽 개발이나 혹은 모니터링 등으로 장시간 돌려야 하는 프로그램을 개발하는 분들께는 대단한 희소식이 되겠군요.
그럼...
|