C++类库Pugixml与rapidxml性能评测
1.xml文件加载的速度,pugixml不如rapidxml。
2.使用的便利性来说,pugixml不如rapidxml。
综上,技术选型可以优先考虑rapidxml。
网络上搜索了一下看了有说pugixml效率比rapidxml高,原博客地址:https://blog.csdn.net/u012209790/article/details/56014779?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242
为了更好的体现性能,都采用当前官网最新版本,现在能下载到最新的分别是pugixml-1.11,rapidxml-1.13。
由于这个是用于嵌入式开发,我这里采用arm-A8的cpu来运行测试。
两个C++类库文件都比较少
下载了pugixml-1.11.zip 文件解压后有很多文件,有例子工程文件,其实真正有用的是src里面的源码,提取源码删除其他东西后就如下图的样子
下载了rapidxml-1.13.zip文件解压后就是下图的样子
编写测试的cpp文件
#include <iostream>
#include "pugixml-1.11/pugixml.hpp"
#include "pugixml-1.11/pugiconfig.hpp"
#include <sys/time.h>#include "rapidxml-1.13/rapidxml.hpp"
#include "rapidxml-1.13/rapidxml_print.hpp"
#include "rapidxml-1.13/rapidxml_utils.hpp"
using namespace std;#define TEST_TIMES 10int pugixmltestmain( void )
{pugi::xml_document doc;timeval starttime, endtime;double timeuse = 0.;double timeAverage = 0.;for( int i = 0; i < TEST_TIMES; ++i ){gettimeofday( &starttime, 0 );if( !doc.load_file( "xml/login.xml" ) ){cout << "failed in load xml file! _ " << i << endl;continue;}gettimeofday( &endtime, 0 );timeuse = 1000000. * (endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - starttime.tv_usec;timeuse *= 0.001 ;cout << " reading files costs : " << timeuse << "ms" << endl;timeAverage += timeuse;}timeAverage /= TEST_TIMES;cout << " \n** The end *******************\n pugixmltest the average costs = " << timeAverage << "ms\r\n\r\n" << endl;return 0;
}using namespace rapidxml;
using std::cout;
using std::endl;int rapidxmltestmain()
{timeval starttime, endtime;double timeuse = 0.;double timeAverage = 0.;//< parse xmlfor( int i = 0 ; i < TEST_TIMES; ++i ){rapidxml::file<> filename( "xml/login.xml" );xml_document<> doc;gettimeofday( &starttime, 0 );doc.parse<0>( filename.data() );gettimeofday( &endtime, 0 );timeuse = 1000000. * (endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - starttime.tv_usec;timeuse *= 0.001 ;cout << " reading files costs : " << timeuse << "ms" << endl;doc.clear();timeAverage += timeuse;}timeAverage /= TEST_TIMES;cout << " \n** The end *******************\n rapidxmltest the average costs = " << timeAverage << "ms\r\n\r\n" << endl;return 0;
}int main()
{pugixmltestmain();rapidxmltestmain();
}
如果没有xml文件 就在测试目录增加一个xml目录,里面创建login.xml
Xml内容如下
<?xml version="1.0"?>
<Request><PK_Type><Name>LOGIN</Name></PK_Type><Info><UserName>admin</UserName><PassWord>21232f297a57a5a743894a0e4a801fc3</PassWord><FSUID>26201907030003</FSUID><FSUIP>172.16.88.192</FSUIP><FSUMAC>00-0c-29-de-4c-58</FSUMAC><FSUVER>1.0.01</FSUVER></Info>
</Request>
到这里文件都准备好了,编译,因为用了pugixml,需要把pugixml的cpp文件编译,如果单纯用rapidxml就不需要另外编译,命令如下
arm-linux-g++ -o test xmltest.cpp pugixml-1.11/pugixml.cpp
编译没有问题就挂载或者拷贝到板子运行测试
下图是执行结果
从测试结果就可以得出,xml文件加载的速度,pugixml不如rapidxml。
使用的便利性来说,pugixml还要编译源码,pugixml不如rapidxml。
那篇博文写在2017年的,应该是这些年两个都有所优化。
综上,技术选型可以优先考虑rapidxml。
C++类库Pugixml与rapidxml性能评测相关推荐
- MaxCompute2.0性能评测:更强大、更高效之上的更快速
原文链接:http://click.aliyun.com/m/13999/MaxCompute2.0(原Odps):通过性能评测,MaxCompute2.0离线计算比同类产品Hive2.0 on Te ...
- 轻云服务器的性能,腾讯云轻量应用服务器性能评测(以香港地域为例)
腾讯云轻量应用服务器香港节点24元/月,价格很不错,ForeignServer来说说腾讯云轻量服务器香港地域性能评测,包括腾讯云轻量应用服务器CPU型号配置.网络延迟速度测试: 腾讯云香港轻量应用服务 ...
- lgg8配置_LGG8XThinQ参数配置-LG G8X ThinQ详细性能评测
LG G8X ThinQ是一款全新发布的机型,这款手机和iPhone12一样不赠送充电器,那么这款手机的参数配置是什么?有哪些值得入手的地方?小编为大家带来最新的手机性能评测,快来看看吧. 一.参数配 ...
- 链表竟然比数组慢了1000多倍?(动图+性能评测)
这是我的第 215 期分享 作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 数组和链表是程序中常用的两种数据结构,也是面试中常考的 ...
- 硬核评测:企业上云的极速存储挑战,华为云全新极速IO云硬盘性能评测
来源:至顶网 作者:董培欣 借助华为云全新一代极速IO云硬盘开启邀测的时机,至顶网评测实验室展开了一次华为云极速IO云硬盘与超高IO云硬盘的性能对比测试活动,并且尝试通过相关测试成绩,对云硬盘的应用能 ...
- 中小企业上云首选,华为云全新云服务器S6性能评测分析
今天,华为云全新弹性云服务器ECS通用计算型云服务器S6(以下简称为"华为云S6云服务器")正式发布,至顶网云能力评估小组对其展开了一场新的基于业务应用的云主机测试,对这款号称&q ...
- Android 应用性能优化(4)---Android App性能评测分析-启动时间篇
Android App性能评测分析-启动时间篇 1.前言 随着项目版本的迭代,App的性能问题会逐渐暴露出来,而好的用户体验与性能表现紧密相关,性能问题从应用的启动优化开始,下面会根据实际app性能测 ...
- android内存占用分析,Android App性能评测分析-内存篇
1.内存了解 在Android App的性能优化的各个部分里,内存方面的知识较多且不易理解,内存的问题绝对是最令人头疼的一部分,需要对内存基础知识.内存分配.内存管理机制等非常熟悉,才能排查问题. 1 ...
- RAKsmart日本服务器的综合性能评测
前段时间RAKsmart新增日本独立服务器和站群服务器产品,对于有需要亚洲服务器的网友来说确实是不错的消息.很多用户不知道RAKsmart日本服务器产品性能怎么样,所以今天主机侦探就为大家来评测一下R ...
- iphonex 测试电池软件,iPhoneX电池容量多大 iPhoneX电池性能评测【详解】
iPhoneX电池容量是多少?相信小伙伴们一定很好奇,下面小编为大家带来了iPhoneX电池性能耗电情况评测详细介绍,感兴趣的小伙伴赶紧跟着小编一起来看看吧. iPhone X上线后,很多小伙伴们在关 ...
最新文章
- 【Django】@login_required用法简介
- uniapp处理IOS底部横条安全区域
- MySQL 无符号和有符号的区别
- 开发效率不高?强烈推荐这十款精选IDEA插件
- android http 本地 web服务(tomcat)
- 使用 Kubernetes 和 Kubeflow 扩展对象检测
- Python: hashlib库、sha256、md5
- 华为手机字体改简体_华为字体买了之后改不了 华为手机字体改简体
- GPS章节要义(补充计算题)
- python xlwt_【已解决】Python中使用xlwt设置cell的背景色
- python股票回测_用Python徒手撸一个股票回测框架
- C++——Minimum——最短路、最小生成树
- alc236黑苹果驱动_黑苹果亮度调节及调节快捷键驱动
- JPBC库(基于配对的密码学)入门和避坑指南
- 挽救市场信誉度,三星正面回应手机爆炸缘由
- 水准测量的各种数字考点
- 荒野行动8月1日服务器维护,荒野行动手游12月21日服务器维护到几点 12月21日具体开服时间公告...
- 墙裂推荐的工具软件及插件神器
- Postgresql日期转字符串
- alias linux 执行命令,Linux系统alias命令编写实现命令别名方法介绍
热门文章
- python房地产成本管理软件_大型房地产成本管理软件
- CentOS操作系统密码复杂度策略设置
- 软件单元测试数据分析模板,单元测试报告模板
- 【5G会话管理】UE IPv6地址的分配(SLAAC协议)
- ip软件在生活中器到哪些作用呢?
- 计算机专业毕业论文题目大全集
- 在Oracle Data Guard环境中的RMAN备份和还原
- 互联网发展简史(5)第一次浏览器大战
- linux的acid属性,Linux_Linux下主要浏览器Acid3大测试(组图),最近浏览器大战愈演愈烈,而 - phpStudy...
- php obclean函数,php函数ob_start()、ob_end_clean()、ob_get_contents()