febird.dataio和boost.serialization性能对比
来源:互联网 发布:品茗bim软件下载 编辑:程序博客网 时间:2024/06/01 07:46
项目地址: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>
比boost快1500倍
编译性能
使用自动生成的代码,迭代所有的基本类型,shuffle后生成20个POD类型。
对stl标准容器和基本类型代码迭代,生成20个complex类型。
然后读写这些类型。
编译+连接时间
目标文件尺寸(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
- febird.dataio和boost.serialization性能对比
- febird.dataio vs boost.serialization 运行性能对比
- febird.dataio和boost.serialization 编译速度对比
- febird.dataio 优化技术
- boost pool性能对比
- boost::serialization
- boost serialization
- boost::serialization
- boost serialization
- boost::serialization
- Boost serialization
- Boost的Serialization和SmartPoint搭配使用
- 关于ByteArrayIO和DataIO的用法
- Learning boost 1 Serialization
- Learning boost 1 Serialization
- Learning boost Serialization
- boost::serialization学习笔记
- Boost::Serialization试用手记
- Oracle Data Guard For 12cR1介绍
- Parse Fatal Error at line 4 column 43: 已经为元素 "web-app" 指定属性 "xmlns"。
- 零食类电商如何差异化竞争
- 欧几里德算法和拓展欧几里德算法
- SQL执行计划
- febird.dataio和boost.serialization性能对比
- AS3关于使用正则表达式检测、匹配、替换文本中的url的方法
- 关于MFC下检查和消除内存泄露的技巧
- c++ primer总结小点
- python中的邮箱通信
- 数据库建立索引参考意见一
- 【Java工程师之路】[2-3.3]Oracle导入导出
- Linux的僵尸进程及其解决方法
- 简单实现了下SSDT SHADOW HOOK