|
안녕하세요. 신입 개발자 입니다.
제가 C++ 빌더를 활용하여 프로그래밍을 하다가 궁금한게 생겨서 질문 올립니다.
제가 만든 프로그램에서 ListView (vsReport)에 5000개 정도의 Data가 들어갑니다.
제가 처음에는 이런 식으로 데이터를 추가하였습니다.
ListView1->Items->Clear();
for(i = 0; i < 5000; i++)
{
ListView1->Items->Add();
}
그러다가 OwnerData 프로퍼티를 true 로 바꿔주고 OnData를 사용하게 되었는데요.
원래 기존에는 Clear()를 해주면 메모리까지 같이 지워졌는데 메모리가 안지워 지고 계속 늘어났습니다.
그래서 빌더포럼 글을 찾아보다가 OwnerData를 사용하면 ListView1->Items->Count = 5000; 이런 식으로 써도 된다고 하더군요.
그래서 아래와 같이 바꿔보았습니다.
ListView1->Items->Clear();
ListView1->Items->Count = 5000;
이렇게 했더니 아예 메모리가 증가하지 않더군요.
해결되어서 기쁘지만 둘의 차이점이 무엇인지 도무지 알 수가 없기도 하고
이 부분을 알게 되면 나중에 프로그래밍 할 때 도움이 될 것같아 질문을 올립니다.
ListView1->Items->Add();
ListView1->Items->Count;
메모리에 관련되서 이 둘의 차이점이 있나요?
|