免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: phoneix
打印 上一主题 下一主题

young library 的轻量级内存池设计与实现 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-05-31 18:00 |只看该作者
强烈想知道比malloc快多少

论坛徽章:
0
12 [报告]
发表于 2007-05-31 20:20 |只看该作者
这个我没有测试过,在不同的平台下结果不一样,对我来讲没有什么意义。我写这个内存池主要的一个目的是在嵌入式系统开发时使用,在嵌入式系统下很多都不支持malloc和free,如果有了这个内存池,那么只需要在底层实现最简单的分配和释放算法就可以达到一个比较理想的使用效果了。

论坛徽章:
0
13 [报告]
发表于 2007-05-31 20:30 |只看该作者
这个稍做修改可用来共享内存区的管理。

论坛徽章:
0
14 [报告]
发表于 2007-05-31 20:44 |只看该作者
一般的程序不需要这种"内存池". 嵌入系统上应该比较有用, 如LZ说的没有malloc, free.

适合的地方是程序有同时并行大量申请释放小memory的情况. 符合这情况的时候很少.

正常的程序调用malloc就可以了.

论坛徽章:
0
15 [报告]
发表于 2007-05-31 20:49 |只看该作者
和 malloc() 工作原理不同,所以与 malloc() 不具可比性。

论坛徽章:
0
16 [报告]
发表于 2007-05-31 20:55 |只看该作者
呵呵,现在用到的共享内存池的动态管理,和这个类似。

论坛徽章:
0
17 [报告]
发表于 2007-06-02 01:04 |只看该作者
这个例子和 apache 的分配方式很相近的.

你可疑去读读apache 的lib 源码.  基本思想差不多. 但别人是按照4k 为一个page 进行分配的 你已字节进行分配.实在......  apache 的每个耶还有个头信息. 很巧妙的.

论坛徽章:
0
18 [报告]
发表于 2007-06-02 12:55 |只看该作者
你说的我在设计的时候都考虑过了,apache 主要是在服务器上使用的,系统资源很丰富,可是在嵌入式系统上就不是这样了,8位、16位机的寻址空间有多大,算过吗?动不动就4K,哪里受得了?为什么我叫它轻量级的内存池呢?就是因为主要的使用对象是嵌入式系统,在服务器上一般都有更完善的、更安全的内存池可以使用,这也是一开始我就没打算实现内存池的原因。

论坛徽章:
0
19 [报告]
发表于 2007-06-07 13:16 |只看该作者
呵呵。。。。
lz的程序库由更新了么??

写了这么牛的东东出来。。

论坛徽章:
0
20 [报告]
发表于 2007-06-07 13:25 |只看该作者
能否加个内存泄露检测上去,也许在嵌入式里更用的上
原理是:
分配时把  adress和size记下来,放到一个hash等进去
free的时候,把此地址从hash里拿掉
然后在查看有无泄露时,使用dump类的函数把现在所有未free的address dump出来
加个宏,控制是否release 版本时把检测去了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP