我想将 TCMalloc 与 STL 容器一起使用,因此我需要一个使用 TCMalloc 构建的分配器(例如带有 TBB malloc 的 tbb_allocator)。我找不到任何TCMalloc 文档(如果它被称为文档)。所以我开始探索头文件并找到一个名为STL_Allocator
. 但是我不清楚。来自 stl_allocator.h 的报价:
// Generic allocator class for STL objects
// that uses a given type-less allocator Alloc, which must provide:
// static void* Alloc::Allocate(size_t size);
// static void Alloc::Free(void* ptr, size_t size);
//
// STL_Allocator<T, MyAlloc> provides the same thread-safety
// guarantees as MyAlloc.
//
// Usage example:
// set<T, less<T>, STL_Allocator<T, MyAlloc> > my_set;
// CAVEAT: Parts of the code below are probably specific
// to the STL version(s) we are using.
// The code is simply lifted from what std::allocator<> provides.
而 STL_Allocator 模板类的定义是:
template <typename T, class Alloc>
class STL_Allocator {
//...
}
我不知道那个Alloc
论点可能是什么。我应该为一些内存分配函数编写一个包装类吗?有人用过 TCMalloc 吗?