和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 实现了一个序列化框架(对比boost.serializaiton/google.protocolbuffer),可以用在协议解析,大/小数据的序列化,有极高的性能(比boost.binary_archive快30~80倍),甚至对于非常小的对象,例如只有几个...
远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
pre_o_1csdn63m9a1bs0e1rr51niuu33e.a
matlab建立计算力学课程的笔记和文件.zip
FT_Prog_v3.12.38.643--FTD USB 工作模式设定及eprom读写
matlab基于RRT和人工势场法混合算法的路径规划.zip
matlab基于matlab的两步定位软件定义接收机的开源GNSS直接位置估计插件模块.zip
office 2016三和一精简版
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
麦肯锡咨询顾问必备宝典-时间管理.ppt
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
麦肯锡顾问的黄金思考方法.pptx
91fdd461elb59a4ce8dfcfc46bc283a7.msi
ansys maxwell
5-5
xx广告促销计划流程实施手册.ppt
仿小米商城微信小程序源码+项目说明.zip
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
麦肯锡xx客户满意服务.ppt