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) /

    friend class boost::serialization::access; /

    template<class Archive> /

    void serialize(Archive & ar, const unsigned int version) /

    { ar Members; }

 

因为febird进行了自动优化,而boost需要用户执行优化。并且febird可以在不改变的代码的情况下,就可以写成Portable数据格式,即使使用Portable,转化了字节序,仍然比boost快得多(10倍以上)。但是对基本数据类型的vector,两者的性能差不多,因为boost对简单数据类型做了优化。

读写文件

前提是在缓存的情况下,对POD数据的操作,平均快20倍。

boost配置

boost::archive::binary_oarchive

boost::archive::binary_iarchive

febird配置

febird::NativeDataOutput<OutputBuffer>àFileStream

febird::NativeDataInput<InputBuffer>àFileStream

 

读写内存,平均快50

boost配置

boost::archive::binary_oarchive

boost::archive::binary_iarchive

febird配置

febird::NativeDataOutput<AutoGrowMemIO>

febird::NativeDataInput<MemIO>

febird极速模式

febird::NativeDataOutput<MinMemIO>

febird::NativeDataInput<MinMemIO>

boost1500

编译性能

使用自动生成的代码,迭代所有的基本类型,shuffle后生成20POD类型。

stl标准容器和基本类型代码迭代,生成20complex类型。

然后读写这些类型。

 

编译+连接时间

目标文件尺寸(KB

*.exe

*.pdb

boost-debug

61

5,739

30,627

febird-debug

23

2,129

14,771

boost-release

155

1,794

14,775

febird-release

54

384

4,451

 

项目地址:http://code.google.com/p/febird

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值