|
안녕하세요.
질문엔 리크가 있는지 물어보는 걸로 적었는데요..
좀 더 정확히는
ListView에 Item을 계속 추가하고
Item의 갯수가 100개가 넘을 때 ListView->Items->Delete(0) 해 주기만 하고
Clear()를 전혀 안 하면 메모리가 계속 쌓이는가 하는 내용입니다.
24시간 동작하는 프로그램을 하나 만들었는데
이 프로그램이 하는 일이 TCP/IP로 수신한 데이터를 ListView에 표시하는 것입니다.
30~35초당 1개의 데이터를 수신하고 데이터의 길이는 80 byte인데
12시간에 1600건 정도의 데이터를 받아옵니다.
이걸 ListView에 갯수가 100개를 넘지 않도록 하여 계속 추가하는 건데요..
처음 실행시의 메모리는 6.9M 정도에서 시작하는데..
12시간이 지나면 8.2M 정도로 상승합니다.
ListView의 Item을 Clear 시키면 6.9M로 다시 줄어듭니다.
Item의 갯수가 100개를 넘지 않기 때문에 기껏해야 7.2M 사용할 것 같은데..
Delete(0)을 계속 호출해 주는데도 메모리가 쌓이는 것 같아서
ListView가 혹시 Item을 Free 시키지 않으면 메모리가 쌓이는 건 아닌지..
쌓인다면 어떻게 해결해야 하는지 고수님들의 조언을 부탁드립니다.
그리고 추가 질문 하나 더요..
NT4.0에서 프로그램 하나 실행할 때 초기 메모리 사용량이 4M 정도 였는데요..
XP에서는 어느 정도로 사용하나요?
<추가>
List Item은 모두 AnsiString으로 동적할당 같은 건 안 썼습니다.
|