/*
无锁内存缓冲池
其特点如下:
池内存的申请和释放不会使用锁,只会用到微耗的interlockedincrement和interlockeddecrement函数
池内存总大小和池内内存块的大小是固定长度的,通过构造函数的参数指定;
分配出来的池内存是经过memset确认的物理内存;
池大小是固定的,若池中空闲内存不足以提供所需,则池内存分配函数利用malloc...
分类:
其他好文 时间:
2014-08-23 16:52:03
阅读次数:
344
用空闲链表的方式组织一连串的分配的空间,且在此程序中仅支持内置类型。只是实现了简单的分配和回收。
#include
#include
#include
using namespace std;
int const MAX=100;
struct block{
block *next;
block *addr;
explicit block(int _size):next...
分类:
编程语言 时间:
2014-08-22 16:30:49
阅读次数:
285
TBOX的内存管理模型,参考了linux kernel的内存管理机制,并在其基础上做了一些改进和优化。...
分类:
其他好文 时间:
2014-08-18 18:36:22
阅读次数:
215
最近在看TCP/IP的BSD实现。首先是它的存储管理,主要是通过mbuf这个结构体来管理缓存。看了一部分,觉得设计的很好,把大块的数据拆成小块存储,这样能很方便的写回收池。之前在写流媒体服务器时,一直苦恼对应帧数据大内存管理,分配的内存之后,该怎么回收,最后是模仿nginx的内存池,再每块固定大.....
分类:
其他好文 时间:
2014-08-12 00:03:13
阅读次数:
276
之前写线段树套splay数组版。。写了6.2k。。然后弃疗了。现在发现还是很水的。。嘎嘎。。zju过不了,超时。 upd:才发现zju是多组数据。。TLE一版才发现。然后改了,MLE。。。手写内存池。。尼玛终于过了。。附zju2112代码于后。bzoj倒是过了,1A的感觉还是很爽的。。可是时间不好....
分类:
其他好文 时间:
2014-08-06 22:09:52
阅读次数:
427
上篇简单介绍了gcc4.8提供的几种allocator的实现方法和作用,这是所有stl组件的基础,容器必须通过allocator申请分配内存和释放内存,至于底层是直接分配释放内存还是使用内存池等方法就不是组件需要考虑的事情。这篇文章开始分析gcc4.8 stl的容器源码实现。stl的容器分为序列式容...
分类:
其他好文 时间:
2014-08-03 17:33:55
阅读次数:
270
.h文件
/**********************说明*************************
* 这是MPool内存池的实现,他具有如下特性:
* 1. 池中的内存块是大小是相同的
* 2. 由宏定义_MP_NO_SERIALIZE决定是否需要多线程同步
* 3. 他利用windows的堆内存API进行内存分配
* 4. 他不能替换crt的malloc和free
* 5. 他不...
1、高性能:
a、内存池的设计,为一个多级链表结构,本身不负责内存的回收,减少内存碎片,提高内存的利用率,将多次向操作系统申请内存压缩为一次,减少向操作系统申请内存的次数,提高cpu资源的利用;
b、基于事件的master-worker异步处理。处理事件的机制是由事件分发进程加载事件处理模块来完成与传统将事件提交给handle-thread来处理的方式相比,减少了进程(线...
分类:
其他好文 时间:
2014-07-24 23:02:13
阅读次数:
222