1 / 3
文档名称:

boost--pool与内存池技术.pdf

格式:pdf   页数:3
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

boost--pool与内存池技术.pdf

上传人:翩仙妙玉 2012/9/15 文件大小:0 KB

下载得到文件列表

boost--pool与内存池技术.pdf

文档介绍

文档介绍:踏雪无痕
boost::pool与内存池技术
分类: C++ BOOST 技术摘录 2012-07-22 15:55 146人阅读评论(0) 收藏举报
建议看这个链接的内容:http://cpp./cn:mempool-example-boost-pool
    Pool分配是一种分配内存方法,用于快速分配同样大小的内存块,
    尤其是反复分配/释放同样大小的内存块的情况。
1. pool
    快速分配小块内存,如果pool无法提供小块内存给用户,返回0。
    Example:
    void func()
    {
      boost::pool<> p(sizeof(int));
                      ^^^^^^^^^^^
                      指定每次分配的块的大小
      for (int i = 0; i < 10000; ++i)
      {
        int * const t = ();
                        pool分配指定大小的内存块;需要的时候,pool会向系统
                        申请大块内存。
        ... // Do something with t; don't take the time to free() it
        ( t );
        // 释放内存块,交还给pool,不是返回给系统。
      }
      pool的析构函数会释放所有从系统申请到的内存。
 
2. object_pool   
 
    与pool的区别在于:pool需要指定每次分配的块的大小,object_pool需要指定
    每次分配的对象的类型。
    Example:
    struct X { ... }; // has destructor with side-effects
    void func()
    {
      boost::object_pool<X> p;
                         ^
      for (int i = 0; i < 10000; ++i)
      {
        X * const t = ();
                      注意;X的构造函数不会被调用,仅仅是分配大小为sizeof(X)
          &