骄傲の猫的专栏
管理一群程序员,就象放牧一群骄傲的猫。
登录
注册
全站
当前博客
空间
博客
好友
相册
留言
用户操作
[即时聊天]
[发私信]
[加为好友]
骄傲的猫
ID:ShardowM
共
3231
次访问,排名
2万外
好友
2
人,关注者
5
人
编程
ShardowM的文章
原创 5 篇
翻译 0 篇
转载 1 篇
评论 5 篇
最近评论
sky04:
刚好在找这个方面资料,谢谢了
henry:
现在比较清楚你的意思是什么了。下面有一些讨论:
--“花费一定的时间来构建链表”是指内存池在分配到一块大的内存后,需要在这块内存中建立链表,链接链表中各个节点的关系。
这个时间只是在构建 pool 时一次花销的。比起大量反复分配/释放小物件内存的实际客户程序的实际应该不算什么。
-- 我说的很大困难是指创建一个通用的内存池。
<……
骄傲的猫:
把allocate改成下面那个样子,应该更合理
void* Pool::allocate(size_t size)
{
if (size != _block)
return ::operator new(size);
//在被stackPtr堆栈中获得内存的地址
if (top > 0) ……
骄傲的猫:
我说的很大困难是指创建一个通用的内存池。在Scott Meyers的Effective C++中介绍的内存池,是通过在被创建的对象中加一个Next指针使其指向下一个对象来建立链表的,这样的话内存池在给对象分配内存时必须通过Next指针来知道下一个对象的地址,因此内存池类就必须知道对象的类的接口,因此也无法将内存池类和对象的类独立出来。
“花费一定的时间来构建链表”是指内存池在分配到一……
henry:
-- 但是正是由于链表,给创建一个可通用的内存池类带来了很大的困难,而且在程序必须花费一定的时间来构建链表。
这句话很费解。操作链表很容易,怎么会有什么很大困难?楼主的很大困难具体指的是什么?另外,“花费一定的时间来构建链表”又具体指什么?
文章分类
.net
(RSS)
C/C++
(RSS)
OpenGL
(RSS)
Symbian
(RSS)
VC/MFC
(RSS)
设计模式
(RSS)
网络技术
(RSS)
收藏
相册
朋友
jewely的Blog
(RSS)
Mailbomb的J2ME专栏
(RSS)
英文技术网站
Code Guru
Code Project
NDSTech
Planet Source Code
Programmers Heavern
SGI
中文技术网站
CSDN_GameDev的专栏
(RSS)
Winmag国际中文版(简体版)
中国协议分析网
存档
2008年06月(2)
2008年02月(1)
2007年12月(1)
2006年09月(1)
软件项目交易
订阅我的博客
网络技术