, 그것은 읽tcmalloc 사용 - malloc 확장을 올바르게로드하는 방법? 파일 gperftools-2.2.1/src에/gperftools/malloc_extension.h에서
// Extra extensions exported by some malloc implementations. These
// extensions are accessed through a virtual base class so an
// application can link against a malloc that does not implement these
// extensions, and it will get default versions that do nothing.
//
// NOTE FOR C USERS: If you wish to use this functionality from within
// a C program, see malloc_extension_c.h.
내 질문은 내가 가상 기본 클래스를 통해 이러한 확장에 액세스 할 수있는 방법을 정확히?
일반적으로 동적 라이브러리에서 클래스를로드하려면 here과 같이 다형성을 통해 원하는 클래스와 함수의 인스턴스를 가져올 수있는 기본 클래스를 작성해야합니다.
그러나 이렇게하려면 API에서 사용할 수있는 클래스 팩토리 함수가 있어야하지만 tcmalloc 파일에는 이러한 함수가 없습니다. 또한 나는 또한 설치 노트에 따라 사용하지 않는 것이 좋습니다 dlopen을 가진 tcmalloc 라이브러리(),로드해야합니다 : dlopen을 통해 malloc에-교체 용 라이브러리를로드 ...
은 어떤 경우에 문제가 요구 입니다 : 일부 데이터는 하나의 malloc으로 할당되고 다른 일부는 다른 것으로 할당됩니다.
위에서 언급 한 일반적인 방법으로 확장 프로그램에 분명히 액세스하는 것은 옵션이 아닙니다. malloc_extensions_c.h에 선언 된대로 C 버전을 사용하여 제거 할 수 있지만 더 나은 해결책이 있는지 궁금합니다.