自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

whinah的专栏

terark.com可检索压缩技术作者。致力于让数据更小,访问更快。

  • 博客(15)
  • 资源 (8)
  • 收藏
  • 关注

原创 很久以前发现的 vc2008 的一个bug(关于模板匹配)

使用操作符重载时,出现模板匹配错误,bug 的出现很简单,下面是代码:#include #include struct A1{ template void operator& x) { printf("void operator& x)/n"); }};struct A2{ void operator<

2009-04-18 23:44:00 1160

原创 vc2008 比 gcc4.3 真是差太多了

项目地址:http://code.google.com/p/febird 用gcc4.3重新编译了一下febird,出现了很多错误,仔细观察,这些错误都是因为不符合C++标准,重新改成符合标准的,比想象的改动量要大。又测试了一下纯 C 实现的 algorithm: febird.c,是从VC2008的stl代码改过来的,在VC2008中测试比std::sort快20%,但是一到gcc中,却

2009-04-18 23:25:00 1578

原创 vc 鲜为人知的 __if_exists

msdn 中有这样一个示例:// the__if_exists_statement.cpp // compile with: /EHsc #include template class X : public T { public: void Dump() { std::cout ::Dump(

2009-04-15 12:48:00 2169

原创 检查序列化声明的顺序和成员定义的顺序

DataIO_is_realdump用来推断一个对象是否可以直接通过dump内存来完成序列化,如果可以,在load/save时会有极大的性能提高。如果dump后,一些成员除了需要byte_swap,而不需要其它任何转化,也可以安全地先dump然后再byte_swap,这样比一个成员一个成员地load/save并且byte_swap要快得多。但是可以引发一个问题,就是如果序列化声明的顺序和成员定

2009-04-11 16:15:00 1488

检查序列化声明的顺序和成员定义的顺序

项目地址:http://code.google.com/p/febird DataIO_is_realdump用来推断一个对象是否可以直接通过dump内存来完成序列化,如果可以,在load/save时会有极大的性能提高。如果dump后,一些成员除了需要byte_swap,而不需要其它任何转化,也可以安全地先dump然后再byte_swap,这样比一个成员一个成员地load/save并且by...

2009-04-11 16:12:48 146

febird.rpc echo 代码

// echo.hclass Echo : public GlobaleScope{public: BEGIN_RPC_ADD_MF(Echo) RPC_ADD_MF(echo) END_RPC_ADD_MF() // 3rd macro param is ';' means non-pure-virtual RPC_DECLARE_MF_EX(echo,...

2009-04-08 12:12:48 141

febird.rpc 实现技术

使用C++模板实现不需要IDL的RPC IDL的数据定义由几个宏定义实现: RPC_DECLARE_MF(FunName, ArgList)声明函数,ArgList必须带括号BEGIN_RPC_ADD_MF_EX(ThisClass,ClassName)BEGIN_RPC_ADD_MF(ThisClass)开始注册函数E...

2009-04-08 11:26:45 473

febird.dataio 序列化宏

序列化宏DATA_IO_LOAD_SAVE(Class,Members)在类定义内调用,无版本,可以优化DATA_IO_LOAD_SAVE_E(Class, Members)在类定义外调用,无版本,可以优化DATA_IO_LOAD_SAVE_V(Class, CurrentVersion, Members)在类定...

2009-04-08 11:23:03 199

C 语言实现的 stl-like 算法

使用类似BOOST.PP技巧,自动生成代码,效率上小胜stl,主要抽象出一般的(sort/heap/search)算法中的compare,按成员类型、偏移、类尺寸分派至不同函数;性能比stl相应算法还略高,用法更简单:#include &lt;febird/c/algorithm.h&gt;using namespace std;struct A { int x, y; }; ...

2009-04-08 10:46:38 254

原创 febird.dataio vs boost.serialization 运行性能对比

本博客已迁移至: http://www.nfabo.cn/p/?p=65代码表示的是数据格式,DATA_IO_LOAD_SAVE 在 <febird/io/DataIO.h> 中定义对boost,DATA_IO_LOAD_SAVE 的定义相当于:

2009-04-06 20:09:00 4678 4

febird.dataio vs boost.serialization 运行性能对比

代码表示的是数据格式,DATA_IO_LOAD_SAVE 在 &lt;febird/io/DataIO.h&gt; 中定义对boost,DATA_IO_LOAD_SAVE 的定义相当于:#define DATA_IO_LOAD_SAVE(Class, Members) \    friend class boost::serialization::access; \    te...

2009-04-06 20:09:00 126

原创 febird.dataio和boost.serialization 编译速度对比

项目地址:http://code.google.com/p/febird 和boost.serialization性能对比运行性能以下数据是对POD数据,都使用典型用法。febird使用DATA_IO_LOAD_SAVE(Class, &a&b&c) boost也使用这样的简化形式:#define DATA_IO_LOAD_SAVE(Class, Members)

2009-04-06 20:07:00 3022 2

febird.dataio和boost.serialization性能对比

 和boost.serialization性能对比运行性能以下数据是对POD数据,都使用典型用法。febird使用DATA_IO_LOAD_SAVE(Class, &amp;a&amp;b&amp;c) boost也使用这样的简化形式:#define DATA_IO_LOAD_SAVE(Class, Members) \    friend class boost::s...

2009-04-06 20:07:00 115

原创 febird.dataio 优化技术

项目地址:http://code.google.com/p/febird  优化技术主要有两点:1.         优化的inlinea)         频繁调用的函数都使用inline,但是值得注意的是,在inline的时候,只inline最频繁的分支,很少走到的分支使用非inline函数,例如:void InputBuffer::ensureRead(voi

2009-04-04 12:45:00 1634

febird.dataio 优化技术

优化技术主要有以下几点:1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 优化的inlinea)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 频繁调用的函数都使用inline,但是值得注意的是,在inline的时候,只inline最频繁的分支,很少走到的分支使用非inli

2009-04-04 12:45:00 305

C++ Best Practice (高阶教程)

你所不知道的C++,临时变量、重载、模板、异常……等等你所不知道的细节

2013-02-25

有穷自动机的原理及应用

有穷自动机,自动机最小化,串匹配,压缩,性能

2013-02-22

对称冗余集群架构

对称冗余集群架构 容错 Memcached

2011-10-18

Text Clustering

2007年的一个项目,对文章进行聚类分析,近千万篇文章,4核4G 的低端服务器即可有效处理并提供在线服务

2011-10-18

HadoopStreaming

写的一个 Hadoop Streaming 教程

2011-10-18

MapReduce应用

2009年写的,刚才看最后修改日期是2009年11月

2011-10-18

Hadoop.MapReduce.分析

2009年7月份写的一篇 Hadoop.MapReduce 介绍

2011-10-18

febird C++ 库(附带所有源码)

febird implemented a serialization framework(vs boost.serialization/google.protocolbuffer), can be used in protocol parsing, big/small data serialization, even in very small object serialize, performance is good. (such as key/data serialization in BerkeleyDB), it provide fast performance(30~80 times faster than boost.binary_archive), and lower memory usage. febird.rpc is a C++ remote procedure call without an IDL supporting, it based on the serialization framework. febird.rpc provide convenient usage and fast performance, and an uniform coding style. febird 实现了一个序列化框架(对比boost.serializaiton/google.protocolbuffer),可以用在协议解析,大/小数据的序列化,有极高的性能(比boost.binary_archive快30~80倍),甚至对于非常小的对象,例如只有几个字节的对象,这在序列化BerkeleyDB中key/data这么小的对象(可能只是一个整数/变长整数)时非常有用。 该库提供了对BerkeleyDB的序列化封装,可以象使用std::map一样使用它。 该库也实现了一个不需要IDL的rpc,使用几个宏,很方便的自动完成函数参数的序列化,比MFC的MessageMap?还要方便。 使用时请checkout最新版,下载的那个版本比较旧了 @see http://blog.csdn.net/whinah http://blog.csdn.net/whinah/archive/2008/11/07/3248730.aspx http://blog.csdn.net/whinah/archive/2008/11/07/3248770.aspx

2009-04-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除