AGG中内存分配策略是什么

这篇文章主要为大家展示了“AGG中内存分配策略是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“AGG中内存分配策略是什么”这篇文章吧。

创新互联从2013年成立,先为旬阳等服务建站,旬阳等地企业,进行企业商务咨询服务。为旬阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

说明    

    AGG采用new/delete函数操作堆内存,有时候并不是最佳的选择。另一方面,STL的内存分配策略太繁琐,因此没有采用。在agg_allocator.h文件中描述目前内存分配策略:

template struct allocator

{

    static T* allocate_array(unsigned size) { return new T [size]; }

    static void free_array(T* v, unsigned) { delete [] v; }

};

具体用法如下:

char* array = allocator::allocate_array(size);

allocator::free_array(array);

理解

    所有的内存分配都是按照这种方法,没有数组要求对数组元素进行初始化工作。所有的分配数据都是POD类型。POD类型被认为是C语言的结构体,没有携带任何的类的特性,能够轻松的进行memcpy或者strcpy。

可以自定义内存分配器,例如:

template struct allocator

{

    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中内存分配策略是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


当前名称:AGG中内存分配策略是什么
文章地址:http://scyanting.com/article/jjehoj.html