1.内存池的目的 提高程序的效率 减少运行时间 避免内存碎片2.原理 要解决上述两个问题,最好的方法就是内存池技术。具体方法就是,申请内存 :大小固定,提前申请,重复利用。3.使用场合 长时间运行的服务程序 对速度要求高的程序 对稳定性要求高的程序4.内存池不能满足所有的需求 内存池...
分类:
系统相关 时间:
2015-04-21 08:18:54
阅读次数:
365
先来看内存池的实现,nginx的内存池实现的非常简单。这里内存池的一些图表可以看老朱同学的slides :http://blog.zhuzhaoyuan.com/2009/09/nginx-internals-slides-video/当内存池初始化的时候(下面会分析到)ngx_poll_s只相当于...
分类:
其他好文 时间:
2015-04-07 15:12:57
阅读次数:
223
#include
#include
#include
#include
using namespace std;
class MemPool{
struct FreeNode{
struct FreeNode* next;
};
private:
static const int allocNum = 8;
static const int step = 4;
stati...
分类:
其他好文 时间:
2015-04-03 00:16:40
阅读次数:
224
最近写的一个程序中需要频繁的申请和释放零碎的内存块,这些内存块的大小却只有简单的几种。如果直接使用系统调用malloc/free、new/delete进行内存分配和释放,则效率很低。程序运行时间长了会产生大量的内存碎片。想起uC/OS-II 里面提供了个内存分配单元,正好满足我的需要。就把里面相关的代码扒了出来。写成了一个内存池的类。
这个内存池的功能非常的简单,初始化时分配一大块内存,然...
分类:
其他好文 时间:
2015-01-23 16:24:55
阅读次数:
205
利用C/C++开发大型应用程序中,内存的管理与分配是一个需要认真考虑的部分。本文描述了内存池设计原理并给出内存池的实现代码,代码支持Windows和Linux,多线程安全。内存池设计过程中需要考虑好内存的分配与释放问题,其实也就是空间和时间的矛盾。有的内存池设计得很巧妙,内存分配与需求相当,但是.....
分类:
编程语言 时间:
2015-01-05 18:14:56
阅读次数:
192
在用gpreftools优化gko_pool的时候我发现一个问题,malloc竟然成了性能瓶颈 由于在每个连接建立的时候gko_pool默认会为读写各分配2KB的buf备用,这个是比较固定的 每个连接的的生命周期会伴随着4KB大小的内存malloc & free 正好可以写个只能分配固定大小内存的“...
分类:
其他好文 时间:
2014-10-04 03:20:35
阅读次数:
180
这个问题确实比较基础,些这篇文章为了给自己一个总结,也算是一个笔记记录,争取做到最精简。结构体对齐关键词: “对齐系数”(也叫对齐模数):以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数 “对齐规则”:分两步,数据成员对齐,整体对齐: 1:数据...
分类:
其他好文 时间:
2014-07-07 18:42:00
阅读次数:
206
源码:可配置内存池【有密码】使用了list原理,实现了可配置的内存,由应用配置,一块内存配置成什么样的内存池。比如用户申请了1M内存,划分成多块进行管理,然后使用。+----------------------+----------------------------------+---------...
分类:
其他好文 时间:
2014-06-21 10:04:31
阅读次数:
199
#ifndef __MEM_POOL_H__#define __MEM_POOL_H__typedef struct tagMemItem{ int nSize; int nUsed; void* addr;}MEM_ITEM_S;/********************...
分类:
其他好文 时间:
2014-06-14 15:52:04
阅读次数:
256
利用默认的内存管理函数new/delete或malloc/free在堆上分配和释放内存会有一些额外的开销。
系统在接收到分配一定大小内存的请求时,首先查找内部维护的内存空闲块表,并且需要根据一定的算法(例如分配最先找到的不小于申请大小的内存块给请求者,或者分配最适于申请大小的内存块,或者分配最大空闲的内存块等)找到合适大小的空闲内存块。如果该空闲内存块过大,还需要切割成已分配的部分和较小的空...
分类:
其他好文 时间:
2014-05-15 02:56:28
阅读次数:
227