这篇文章主要为大家展示了“AGG中内存分配策略是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“AGG中内存分配策略是什么”这篇文章吧。
创新互联从2013年成立,先为旬阳等服务建站,旬阳等地企业,进行企业商务咨询服务。为旬阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
说明
AGG采用new/delete函数操作堆内存,有时候并不是最佳的选择。另一方面,STL的内存分配策略太繁琐,因此没有采用。在agg_allocator.h文件中描述目前内存分配策略:
template
{
static T* allocate_array(unsigned size) { return new T [size]; }
static void free_array(T* v, unsigned) { delete [] v; }
};
具体用法如下:
char* array = allocator
allocator
理解
所有的内存分配都是按照这种方法,没有数组要求对数组元素进行初始化工作。所有的分配数据都是POD类型。POD类型被认为是C语言的结构体,没有携带任何的类的特性,能够轻松的进行memcpy或者strcpy。
可以自定义内存分配器,例如:
template
{
static T* allocate_array(unsigned size)
{
return (T*)malloc(sizeof(T) * size);
}
static void free_array(T* v, unsigned size)
{
if(v) free(v);
}
};
应用场景:创建自定义的超高效堆内存
以上是“AGG中内存分配策略是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!