나는 비슷한 문제를 최근에 만나, 나는이 문제에 대한 유용한 해결책을 고안한다. ~ * 함수와 다른 "freeObject"라는 해체 함수를 작성할 수 있으며 "freeObject"함수를 명시 적으로 호출해야합니다. 다음은 그 예입니다.
void VideoAbstraction::freeObject(){
videoCapture.~VideoCapture();
videoWriter.~VideoWriter();
backgroundImage.release();
currentStartIndex.release();
currentEndIndex.release();
mog.~BackgroundSubtractorMOG2();
gFrame.release();
gForegroundMask.release();
gBackgroundImg.release();
currentMask.release();
vector<ObjectCube>().swap(partToCompound);
vector<Mat>().swap(compoundResult);
vector<Mat>().swap(indexs);
vector<Mat>().swap(indexe);
vector<int>().swap(frame_start);
vector<int>().swap(frame_end);
}
이고 발신자 부분은 이와 유사합니다.
void UserVideoAbstraction::UserfreeObject(){
userVB->freeObject();
}
메모리 프로파일 러 또는 힙 디버거를 사용하십시오. 나는 먼저 관리되지 않는 것부터 시작하겠다. Umdh.exe에는 적절한 가격이 있습니다. –