studio ruminity / diary
ruminations on 07.02.
Win2K에서는 되던 것이
Win98에서는 속도가 떨어지고 급기야
시스템 리소스를 전부 잡아먹는 '쓰러지게 만드는 현상'덕에 3일을 좌절했었다.
처음에는 메모리 관련 문제라고 확신하고
(물론 그 문제도 깊숙하게 따지자면
메모리 관련 문제일 수 있지만??),
필요 없는 부분까지 찾아가서 free해주고
프로그램을 돌려서
어느 쪽의 메모리 할당이 문제가 있는지 뒤적거리고 했었지만
너무 완벽했기 때문에(-_-;),
급기야 그것이 내 Win98에서만 일어나는 것이 아닐까 하는 오해마저
생기게 되어버렸다.
그러나 문제를 찾게 되었을 때는 허탈했었으니..
hFont = CreateFont(16, 0, 0, 0, FW_NORMAL , FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, VARIABLE_PITCH, fontName);
이것이었다. -_-
폰트만들고 안 지워서 리소스 부족 현상이 났었구나? 라고 물으신다면 천만에 말씀...; 분명히 같은 서브 루틴 안에
DeleteObject(hFont);
가 포함되어 있었다.
hFont = CreateFont(16, 0, 0, 0, FW_NORMAL , FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, VARIABLE_PITCH, fontName);
...
DeleteObject(hFont);
식으로, 분명히 서브루틴이 끝날때 어떻게해서든 저 부분은 통과하게 되어 있었다.
그러나 역시 분당 수천번을 루프로 돌려버리니 리소스는 서서히 줄어들었던 것. -_-;
HFONT를 전역으로 잡고 돌려버리니... 속도 문제도 없어지고 예의 그 현상은 일어나지 않았다.;
..
Win98.... 확실히 안 좋긴 안 좋은가 봐.;
http://nvyu.net/ | |hit:4508|2003/08/19
|