用户操作
[即时聊天] [发私信] [加为好友]
雷鹏ID:whinah
20345次访问,排名5852好友2人,关注者6
嵌入式两年,安全两年,现今搜索
whinah的文章
原创 43 篇
翻译 0 篇
转载 0 篇
评论 13 篇
最近评论
whinah:客气、客气,这个RPC之后我也再没继续深入。打造一个稳定而强大的基础设施需要太大的精力。目前我们使用ICE,有兴趣可以去关心一下。前不久我在boost sandbox 中看到了一个rpc,没细看,估计在参数传递方面和我的设计思想差不多,不过它底层用的是boost.asio。
zm0011:在开发网络通讯程序中很有用,正想自己写一个,竟然百度出来了。顺便看了一下老兄的其它文章,数量不多但水平比较高,而且涉足的领域很多哦,从WIN到LINUX、从C++壳到数据库都有。希望能看到你奉献更多的好东东,谢谢!
whinah:这里只考虑了简单性,atl 这种手工打造虚表的方法的确可以节省存储空间,但是繁琐了一些。
nico:有没有考虑过 ATL/WTL 里用到模拟虚函数?

template <class T>
class foo
{
int& get_n()
{
T* pT = (T*)this;
return pT->n;
}
}

class bar : foo<……
whinah:如果真要实际使用这种技术,字符串文字量也必须经过地址转换,如:
convert_address("string literal")
文章分类
    收藏
      相册
      我的相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes
      2008年04月

      原创 多线程的 pipeline 设计模式收藏

      有很多个html网页,网页的id、title、url、path等信息存在一个数据库表中,网页内容存储在一个磁盘阵列上。现在要把所有网页都读出来,统计其中的html标签、正文等信息,并写入另一个数据库表,怎样的设计最好呢?一般的想法是使用多个平行的线程,每个线程处理某个ID范围的网页。但是仔细分析就可以发现,对每个网页的处理可以分为以下处理步骤:读取数据库行读取文件内容解析html,生成统计数据将统计结果写入数据库这几个处理步骤有各自的特征,读取数据库的时间一般主要消耗在数据库服务器响应,读取文件内容一般主要消耗在磁盘IO上,解析、统计消耗在计算上,写统计结果也消耗在数据库服务器响应上。如果我们为这几个过程建立各自的线程,每个任务通过消息队列来传递。阅读全文>

      发表于 @ 2008年04月22日 16:49:00|评论(loading...)|编辑|收藏

      原创 C++ 的缺点收藏

      C++ 现在最时髦的用法是 template meta programming。booster 们对此非常津津乐道,我本人也是个狂热的booster。到了什么程度?不使用template 就浑身不舒服,不boost一下就感觉对不起C++。但是这种狂热带来的严重后果就是程序编译速度极慢无比,生成的执行程序尺寸超常。曾经一个 C++ 服务器程序,代码也就10000行左右,编译出来的执行程序竟然20M!编译时间半小时!写的时候感觉不到用了多少template,但是写出来竟然得到这样的结果,不得不让人吃惊!阅读全文>

      发表于 @ 2008年04月22日 16:12:00|评论(loading...)|编辑|收藏

      原创 通用的 LoserTree收藏

      - 共有 n 个内部结点,n 个外部结点 - winner 只用于初始化时计算败者树,算完后即丢弃 - winner/loser 的第 0 个单元都不是内部结点,不属于树中的一员 - winner 的第 0 个单元未用 - m_tree 的第 0 个单元用于保存最终的赢者, 其它单元保存败者 - 该初始化需要的 n-1 次比较,总的时间复杂度是 O(n) - 严蔚敏&吴伟民 的 LoserTree 初始化复杂度是 O(n*log(n)),并且还需要一个 min_key, 但是他们的初始化不需要额外的 winner 数组 - 并且,这个实现比 严蔚敏&吴伟民 的 LoserTree 初始化更强壮 阅读全文>

      发表于 @ 2008年04月22日 15:14:00|评论(loading...)|编辑|收藏

      原创 一个很强大的Comparator生成器收藏

      一个宏定义生成一个比较器(Comparator),兼键提取(KeyExtractor)类阅读全文>

      发表于 @ 2008年04月22日 15:02:00|评论(loading...)|编辑|收藏

      原创 Comparator 将 M×N 转化成 M+N收藏

      用C++写程序经常需要写一些很小的functor,最常见的例子就是 compare functor,排序的,查找的,自己每定义一个数据结构,就要定义一个 compare functor,甚至多个(对不同字段)。甚至,针对指针的,智能指针的……的compare,这件工作很繁琐,很容易使人厌倦。举个例子,同一个数据结构有M个字段,这些字段有P种类型,还有有N种不同的访问方式(直接提取、通过指针、通过智能指针、甚至通过反序列化等等),要实现所有这些情况的查找/排序,就需要 M×N 个 compare functor 的定义!从 boost::multi_index 中学到一点,将 KeyExtractor 和 Comparator 分离,这样,只需要写 P 个Comparator,M+N个KeyExtractor,一般情况下,甚至不需要写Comparator,因为字段类型大多是内建类型,Comparator是默认的。阅读全文>

      发表于 @ 2008年04月22日 14:54:00|评论(loading...)|编辑|收藏

      原创 C++ 中 Bool functor 的优化收藏

      原以为足够现代的编译器的优化能力很强,看来我是高估了。GCC 没测过,VC 2008 刚刚被证实了。 阅读全文>

      发表于 @ 2008年04月22日 13:53:00|评论(loading...)|编辑|收藏

      Csdn Blog version 3.1a
      Copyright © whinah