6
23
2011
1

近来学到的内存分配方法

最近在学习apache portable runtime,其中学到内存分配这块,apr使用的分配方式是内存池,不过作者说这种分配方式是一个败笔,由于本人对于底层内存分配算法的学习尚浅,无法领悟作者为什么会这么说,不过,也由此了解到了除了比较熟悉的内存池和一直以来都广为传颂的垃圾回收之外的一些内存分配方法——smart pointer智能指针,也叫auto ptr,其实在实现上,这是一个带有析构函数的模板类,可以利用它方便的管理指针,以避免内存泄漏问题,这是一种值得学习的思路,既没有增加语言本身的复杂性,有提供了更好的内存管理功能。还有就是apr中分配大块内存所用到的内存映射mmap——相当于直接将文件扔进内存(不分页,完全占用一段内存),这样大大提高了文件的访问效率,也方便了进程间的文件共享。

Category: 学习心得 | Tags: | Read Count: 833
Avatar_small
Mike Ma 说:
2011年6月25日 20:56

小小的。。。提一句,glib的内存管理我觉得够了,甚至我觉得alloc族已经够了。。(检查分配?拿任意一个字符串处理的,搜索所有malloc和free出现的次数,free比malloc少就是内存泄漏)


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com