ACE内存管理之ACE_Cached_Allocator类详解

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

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 (void *);

  size_t pool_depth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值