안녕 하세요.
많은 양의 계산결과를 vector 와 구조체를 조합하여 메모리에 저장하는 방법을 사용하고 있습니다.
new 같은 동적할당은 전혀 하지 않았습니다.
재계산을 할 경우에는 기존 vector 에 저장된 값을 초기화 하고 다시 입력을 합니다.
이렇게 하면, 메모리 사용량이 증가를 할수가 없는데, 윈도우작업관리자로 보면 메모리사용량이 증가 하고 있습니다.
이 부분을 보완해야 할것 같은데, 어느 vector 에서 사용량이 증가하는 지 확인 하는 방법이 있나요?
저장할 구조체
struct TNE_RainDistCal { // 1차반복
AnsiString AsRainDistName; // 강우분포 이름
AnsiString AsRainDistSimbol; // 강우분포 기호
struct FreqRainDist FreqRainDistData;
vector<FreqRainDist>veFreqRainDist;
TNE_RainDistCal() {
Clear();
}
void Clear() {
AsRainDistName = "";
AsRainDistSimbol = "";
FreqRainDistData.Clear();
veFreqRainDist.clear();
ZeroMemory(this, sizeof(*this));
}
};
extern TNE_RainDistCal TNE_RainDistCalData;
extern vector<TNE_RainDistCal>veRainDistCalResult;
이런식으로 구조체를 정하고,
초기화는 TNE_RainDistCalData.Clear();
veRainDistCalResult.clear();
이런식으로 하였습니다.
|