骄傲の猫的专栏

管理一群程序员,就象放牧一群骄傲的猫。

用户操作
[即时聊天] [发私信] [加为好友]
骄傲的猫ID:ShardowM
3242次访问,排名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:-- 但是正是由于链表,给创建一个可通用的内存池类带来了很大的困难,而且在程序必须花费一定的时间来构建链表。

这句话很费解。操作链表很容易,怎么会有什么很大困难?楼主的很大困难具体指的是什么?另外,“花费一定的时间来构建链表”又具体指什么?
文章分类
收藏
    相册
    朋友
    jewely的Blog(RSS)
    Mailbomb的J2ME专栏(RSS)
    英文技术网站
    Code Guru
    Code Project
    NDSTech
    Planet Source Code
    Programmers Heavern
    SGI
    中文技术网站
    CSDN_GameDev的专栏(RSS)
    Winmag国际中文版(简体版)
    中国协议分析网
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    .net

    原创 ASP.net动态调用非托管DLL的参数传递问题收藏

    最近由于工作的原因碰到了在ASP.net调用非托管DLL参数传递的问题,结果花了半天时间终于比较完美的解决。特此写这篇文章与大家分享。阅读全文>

    发表于 @ 2007年12月05日 10:14:00|评论(loading...)|收藏

    Csdn Blog version 3.1a
    Copyright © 骄傲的猫