TinyXml 与 Rapidxml效率对照

曾经在做开发中一直使用TinyXml,在网上搜索说Rapidxml的效率比tinyXml高。个人比較喜欢追求效率。所以忍不住尝试性使用Rapidxml。

RapidXml 的官方站点例如以下: http://rapidxml.sourceforge.net/manual.html

RapidXml是一个使用C++编写的XML DOM解析工具包,整个解析工具包包括在一个头文件里。所以使用时不用编译也不用连接。仅仅要包括rapidxml中的三个头文件就可以。RapidXml
试图成为最快的 XML DOM 解析工具包。同一时候保证解析结果的可用性、可移植性以及与 W3C 标准的兼容性。

在操作同一数据时,其解析速度接近于 strlen() 函数。下面是RapidXml提供的常见xml库效率对照表,当中还非常牛鼻地提供了和strlen()函数的效率对照。

例如以下图是官方提供的对照数据:

二、简单使用

包括必要的头文件

#include "rapidxml.hpp"

创建文档对象

rapidxml::xml_document<char> doc;

分析xml字符串。要求以‘\0‘结尾

std::string str(...);

doc.parse<0>(const_cast<char *>(str.c_str()));

获取节点

rapidxml::xml_node<char> * node = doc.first_node("node name");

遍历全部节点

for(rapidxml::xml_node<char> * node = parent_node->first_node("node name");

node != NULL;

node = node->next_sibling())

{

...

}

时间: 2024-10-28 11:53:26

TinyXml 与 Rapidxml效率对照的相关文章

TinyXml 与 Rapidxml效率对比

以前在做开始中一直没用TinyXml,在网上搜索说Rapidxml的效率比tinyXml高.个人比较喜欢追求效率,所以忍不住尝试性使用Rapidxml.RapidXml 的官方网站如下: http://rapidxml.sourceforge.net/manual.html. RapidXml是一个使用C++编写的XML DOM解析工具包,整个解析工具包包含在一个头文件中,所以使用时不用编译也不用连接.只要包含rapidxml中的三个头文件即可.RapidXml 试图成为最快的 XML DOM

sqlite3树形结构遍历效率对照測试

sqlite3树形结构遍历效率对照測试 一.缘起 项目数据结构:本人从事安防行业,视频监控领域.项目中会遇到监控点位的组织机构划分.暂时划分的巡逻点位等.这些相机点位.连同组织机构,它们在逻辑关系上构成了一个树形结构. 又因为不论什么一个点位属于一个组织机构,也可能属于一个被暂时创建的视频巡逻计划中,因此,能够看出,不论什么一个节点,包含相机节点和组织机构节点,都有可能有至少一个父级节点,且不论什么一个组织机构节点也会有多个下级子节点.这中逻辑关系又构成了图. 数据量规模:一个市级别的管理平台,

Android Ant 和 Gradle 打包流程和效率对照

一.Ant 打包:(下载ant.配置环境变量就不说了) 1.进入命令行模式,并切换到项目文件夹.运行例如以下命令为ADT创建的项目加入ant build支持: android update project -p . -t  "android-17" 2.build脚本默认target是help.所以会显示如上信息,改动target为debug或release就能够像无ant时一样编译.生成以及调试了. 3.使用release时  在local.properties加入签名信息 #key

openCV 和GDI画线效率对照

一. 因为项目须要,原来用GDI做的画线的功能.新的项目中考虑到垮平台的问题.打算用openCV来实现.故此做个效率对照. 二. 2点做一条线,来測试效率. 用了相同的画板大小---256*256的大小,函数通过參数输入.用GetTickCount来实现计时功能. 三. GDI的主要循代码例如以下: void show_line(int line_num,int point_num) { ULONAG start_time = get_tick_count(); VMGdiPolygon* te

Linux C存取效率对照——堆、栈、常量区

本文主要探讨堆和栈在使用中的存取效率.利用宏汇编指令分析訪存情况来进行简单推断. 实验环境及使用工具:i686,32位Ubuntu Linux.gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3,gdb 首先,引用一道题的代码和"答案",这是"比較堆和栈存取效率"的.可是其实,他给的两种方式都用的栈,个人试出来的占用堆空间的情况,仅仅能是malloc()和new()等系统调用产生的. #include<stdio.h> ma

java int转String全部方式的效率对照与深入解析

在java中,大家肯定都会遇到int类型转String类型的情形,知其然知其所以然.总结加分析一下,int类型转String类型有下面几种方式: a+"" String.valueOf(a) Integer.toString(a) 以上三种方法在实际使用过程中都是没有问题的,可是效率上还是有些许区别的,所以写个小程序来对照一下他们的效率: int a = 123456789; long start = System.currentTimeMillis(); for (int i=0;

C#的StringBuilder 以及string字符串拼接的效率对照

今天公司一个做Unity3d的人在说字符串拼接的一个效率问题,他觉得string拼接会产生新的一个内存空间,假设不及时回收会产生大量的碎片,特别是在Unity3d这样一个Updata环境下,由于每一帧都会调用,所以假设使用简单的拼接的话,就会产生非常多碎片,从而影响手机发热. 他的想法是用StringBuilder去直接改动内存,而不进行一个拼接会更加直接有效的去运行,速度也会更快. 由于认为这个东西有点意思,所以我就想做个对照来看,是不是自己老了记错了事情,特别是我是做服务端的,效率才是我考虑

一大波Java来袭(四)String类、StringBuilder类、StringBuffer类对照

本文主要介绍String类.StringBuffer类.StringBuilder类的差别  : 一.概述 (一)String 字符串常量.可是它具有不可变性,就是一旦创建,对它进行的不论什么改动操作都会创建一个新的字符串对象. (二)StringBuffer 字符串可变量,是线程安全的,和StringBuilder类提供的方法全然同样. 差别在于StringBuffer每一个方法中前面加入了"synchronized",保证其是线程安全的. (三)StringBuilder 字符串可

Android Ant 和 Gradle 包装工艺和效率控制

一个.Ant 包:(下载ant.配置环境变量不说) 1.进入命令行模式,并切换到项目文件夹,运行例如以下命令为ADT创建的项目加入ant build支持: android update project -p . -t  "android-17" 2.build脚本默认target是help,所以会显示如上信息,改动target为debug或release就能够像无ant时一样编译.生成以及调试了. 3.使用release时  在local.properties加入签名信息 #keyst