【发布时间】:2015-07-04 22:53:22
【问题描述】:
我有一个 XML(实际上是 SVG)文件,4000 行,大约 700 个单独的节点,每个节点都有一个重要的属性。
我想预加载数据,并用数据填充实际的 C# 运行时模型图(一些字符串拆分和属性设置)。
我使用 XmlDocument 完成了此操作,该过程耗时 12 秒(在 Unity 编辑器播放模式下)。
我开始使用XmlReader实现,只遍历文件花了6秒(没有任何处理,只有Read,MoveToNextAttribute调用)。
有什么方法可以读取文件错误... ...更快?
6-8 秒的启动时间是我无法接受的。整个过程大约需要... ...最多半秒。
【问题讨论】:
-
XmlReader应该非常快。你能在 6 秒内发布代码吗? 4000 行也很小。 -
是的,4000 行应该没问题。似乎使用 DOCTYPE 会导致问题。我正在解析 SVG 以获取大量的多边形数据。
-
我也有同样的问题。第一个改进与您注意到的相同,即使用 XmlReader 而不是 XmlDocument。第二种是使用多线程,以便在不同的线程中处理一级节点(与计算机上的核心一样多的线程)..
-
XML 文件的大小(以千字节为单位)是多少?
-
好像是
DOCTYPE的定义,我把它作为答案放在下面。
标签: c# xml unity3d xml-parsing