`
emowuyi
  • 浏览: 1482054 次
文章分类
社区版块
存档分类
最新评论

用C++和C#生成XML的性能

 
阅读更多

C#生成XML,典型的方法有:1,XmlWriter;2,直接用StringBuilder手动拼凑;3,用XmlDocument生成。

C++生成XML,典型的方法有:1,用CString的AppendFormat;2,用C风格的sprintf拼装;3,使用ms的com库。

目标是生成10k字节的xml内容,重复10000次。

C#用XmlWriter和StringBuilder都需要2100毫秒左右。(流程和逻辑都差不多,最终速度也差不多,这是正常的)。

C#用XmlDocument大概要10000毫秒左右。(这个需要生成一大堆对象,慢是正常的)。

C++用CString和sprintf都需要2800毫秒左右。(需要每次都解析format字符串,这会损耗性能)。

C++用ms库需要15000毫秒左右。(看着那一堆CComVariant就知道速度快不了)。

说明:根据经验,用strcpy、itoa和ftoa来拼装字符串,可以比sprintf大概快两倍左右,取决于拼装的内容。但是那样的代码非常难写也非常难维护。因此我在这里就没有对此再做单独的测试了。C++如果祭出自残残人大法,去用strcpy和itoa来生成xml,我想终究还是可以比C#更快的。

结论,在生成XML的方面,C#已经做得相当不错了,性能甚至超过了C++常用的sprintf方法。

分享到:
评论

相关推荐

    XML.rar_C++生成xml_XML C#_visual c_xml C++_生成 xml

    xml类,可以实现xml文档生成,xml文档解析。

    C#读写XML文件

    一个用C#编写的解析XML文件的小例子.一通百通,让你从原理上入门和明白如何用C++从XML文件中提取想要的信息。并且学会如何用C#创建,修改,和保存XML文件。

    C#.net常用函数和方法集

    创建和使用C#DLL 24 在C#中调用C/C++代码 27 C#调用C语言DLL文件示范 28 在C#中调用windowsAPI函数实例 31 使用C#跨平台调用p/invokeDllImport 32 C#调用C动态库 37 C#操作数据库简介 38 NET(C#)连接各类数据库 40 ...

    v1.2 解析XML文件 读取XML文件 保存XML文件 添加节点 删除节点 修改节点 添加属性 修改/删除属性

    功能:创建XML文件的根节点 参数:[in] sName 根节点的节点名 返回:true创建成功 false创建失败 **************************************/ bool CreateRootNode(CString sName); /************************...

    xmlspy.2013-patch

    的Java / C#/ C++代码生成XML架构 SOAP客户端,SOAP调试器,SOAP验证 XML数字签名XML文档的签名支持 即时图表创建用于显示和分析XML数据 JSON编辑器,JSON和XML转换 Visual Studio集成与Eclipse的集成 HTML编辑器和...

    altova-xmlspy-enterprise-2010-v12-3

    的Java / C#/ C++代码生成XML架构 SOAP客户端,SOAP调试器,SOAP验证 XML数字签名XML文档的签名支持 即时图表创建用于显示和分析XML数据 JSON编辑器,JSON和XML转换 Visual Studio集成与Eclipse的集成 HTML编辑器和...

    C#的XML两种代码注释实例说明

    在C/C++,JAVA中,有两种注释,一种是单行注释,即两根反斜杠(//),另一种是多行注释,即... 在C#中采用了另外一种形式,即XML。为了能够在编译过程中生成XML文档,需要一种来标记来标注注释。即三根反斜杠。下面是一个

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

    C++ excel库 libxl(v3.8.0&v4.1.1&v4.2.0).7z

    net框架,结合了易于使用和强大的功能。库可用于 从头开始生成一个新的电子表格 从现有的电子表格中提取数据 编辑现有的电子表格 LibXL可以帮助您的应用程序以最小的工作量从Excel文件导出和提取数据。也可以用作...

    C#入门经典 2008

    本书卖点: 1.Wrox畅销书,C#经典名著!是2006~2008年最畅销的...齐立波,计算机专业硕士、大学讲师,一直从事C/C++和C#程序设计方面的教学与科研工作,曾参与编写多本计算机教材,并为一些软件公司翻译过大量的技术

    Visual.C#.编程精彩百例

    书籍目录: 第1篇 Visual C#基础编程实例 实例1 C#经典程序--Hello World 实例2 C#的简单输入输出(I/O) ...实例99 C#与XML联合应用XMLHelper 实例100 在C#中部署应用程序 附录 WinCV 参考文献 CLeopard 2012/01/07

    c#学习笔记.txt

    若要在一个用 @ 引起来的字符串中包括一个双引号,请使用两对双引号:@ 符号的另一种用法是使用碰巧成为 C# 关键字的被引用的 (/reference) 标识符。 8, 修饰符 修饰符作用 访问修饰符 public private internal ...

    json-c-0.7.rar_c json_json c_json 数据 格式_json-c vc_xml-json-c

    JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。[编辑本段]JSON与XML的比较  ◆可读性  ...

Global site tag (gtag.js) - Google Analytics