以下内容摘自VC十年技术群, 欢迎内存池技术研究人员进本群, 共同研究技术.
也许以下的代码实现, 并不完美的, 也不是优秀, 但能解决实际问题, 可以证明是有效果的.
无论如何, 也是提供了一个非常好的参考.
以此鼓励不断为性能为内存使用烦恼的VC技术人员.
本文出自: 阿呆 http://blog.csdn.net/davemin
宣传: VC 十年技术群 30107096 欢迎高手加入,本群只研究VC
(2009-10-16 11:06:01) 张鹏-宁波(52401692)
命中率90%多,呵呵。目前看上去运行可以到一个月左右,比较稳定,哈哈
(2009-10-16 11:06:06) 张鹏-宁波(52401692)
原来只能运行2天左右
(2009-10-16 11:08:12) 张鹏-宁波(52401692)
其实我那个思路就更菜了,呵呵。但效果还很不错,就是固定了几个大小,16、32、64、128 ……
(2009-10-16 11:11:03) 阿呆 -假装高手(40133435)
固定了几个大小,16、32、64、128 …… 这样的设计,其实是大多小型内存池实现的基本方法.
(2009-10-16 11:11:19) 阿呆 -假装高手(40133435)
stl 也是如此.
(2009-10-16 11:11:32) 阿呆 -假装高手(40133435)
不管怎么实现,关键是管不管用.
(2009-10-16 11:13:17) ...(115963176)
说的这样HAPPY,代码贴出来
大家学习一下啊
(2009-10-16 11:16:57) 张鹏-宁波(52401692)
// TODO:
// 1、设置每个Pool的单独的上限
// 2、如果总的内存占用太多了,要尽快释放
本文出自: 阿呆 http://blog.csdn.net/davemin
宣传: VC 十年技术群 30107096 欢迎高手加入,本群只研究VC
(2009-10-16 11:18:45) 张鹏-宁波(52401692)
(2009-10-16 11:18:57) 张鹏-宁波(52401692)
(2009-10-16 11:19:04) 张鹏-宁波(52401692)
就这些了,呵呵,欢迎拍砖
(2009-10-16 11:19:58) 张鹏-宁波(52401692)
用法很简单,呵呵,就是将普通的new改为调用 CMemory的New, delete改为调用 CMemory的Delete
(2009-10-16 11:20:23) 张鹏-宁波(52401692)
CMemory中管理好多个小池子,分大小的,它会找到合适的池子去New和Delete
(2009-10-16 11:21:41) 张鹏-宁波(52401692)
如果池子中没有空位,就真的new,否则就用一个空位,释放时也不真释放,只是标记一下,放到池子里面。根据我程序的特性,我用了这么多大小的池子,好像是16个池子,管理的内存块大小分别是: