ACE_Cached_Allocator预先分配内存,然后使用它自己的内部机制来管理内存。这样的分配发生在类的构造器中。所以使用它,仅在开始时使用OS内存分配接口来完成分配。
在那以后,它将照管所有内存分配和释放。
这样做的好处是性能和可预测性。设想一个必须高度可预测的实时系统,通过OS来分配内存将涉及昂贵和不可预测的OS内核调用。而ACE_Cached_Allocator不会涉及这种调用,每一次分配和释放都会花费固定的时间。
那么该如何使用这个类呢?
我们先看一下它的类的声明:
template <class T, class ACE_LOCK>
class ACE_Cached_Allocator : public ACE_New_Allocator
{
public:
~ACE_Cached_Allocator (void);
void *malloc (size_t nbytes = sizeof (T));
virtual void *calloc (size_t nbytes,
char initial_value = '\0');
virtual void *calloc (size_t n_elem,
size_t elem_size,
char initial_value = '\0');
void free

ACE_Cached_Allocator类提供预分配内存管理,避免频繁的OS内核调用,提高实时系统的性能和可预测性。文章详细介绍了类的成员变量、构造函数、malloc()、calloc()、free()等核心方法的用法,以及如何利用其模板参数和派生子类进行定制。通过示例展示其实现原理和使用场景。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



