성능이 뛰어난 런타임 메모리 메트릭을 원하므로 오버로드를 기반으로 메모리 트래커를 작성했습니다 new
& delete
. 기본적으로 힙에서 할당을 수행하고 조각화, 크기, 시간, 숫자, 콜 스택 (callstack) 등과 같은 모든 것을 분석합니다. 그러나 치명적인 결함이 두 개 있습니다. 다른 DLL에 할당 된 메모리를 추적 할 수 없으며 개체 소유권 DLL로 전달되거나 그 반대로 충돌이 발생합니다. 작은 결함 : 사용자가 new
대신 malloc
을 사용하면 문제가 발생하지 않습니다. 또는 사용자가 new
/delete
으로 정의 된 클래스를 만드는 경우.어떻게 DLL 경계를 넘어 메모리를 추적 할 수 있습니까
어떻게 이러한 결함을 제거 할 수 있습니까? new
/delete
을 오버로드하여이 문제를 근본적으로 잘못 수행해야한다고 생각합니다. 더 좋은 방법이 있습니까?
위대한 답변! +1 – jweyrich