기본 라이브러리 통화로 인해 관리 코드가 메모리가 유출되는지 어떻게 알 수 있습니까?
-
05-07-2019 - |
문제
기본 라이브러리로 전화하는 관리 DLL이 있습니다. 이 기본 라이브러리는 일반적으로 intptrs를 반환합니다. 이것들은 기본 라이브러리의 다른 방법으로 전달하여 일을 수행하거나 Library에 IntPTR과 관련된 인스턴스를 풀어달라고 지시 할 수 있습니다. 그러나 일부 인스턴스만이 이런 식으로 해방해야하며 다른 경우는 라이브러리에서 관리합니다. 문제는 문서가 어떤 인스턴스가 해제되어야하는지에 대해 항상 명확하지 않다는 것입니다.
내가 알고 싶은 것은 내 코드가 해제되어야 할 포인터에 대한 참조를 유지했는지 알 수있는 방법이 있는지 여부는 메모리가 누출되도록하는 것입니까?
해결책
가장 쉬운 방법은 아마도 메모리 프로파일 러를 사용하는 것입니다. 빠른 Google은 링크를 나타 냈습니다 memprofiler. 나는 이것을 한 번 (시험으로) 사용했고 디렉토리 엔트리를 제대로 처분하지 않은 곳을 찾을 수있었습니다. 나는 이것을 포함하여 다른 사람들이 있다고 확신합니다 하나 Redgate에 의해.
제휴하지 않습니다 StackOverflow