gpt4 book ai didi

c# - 使用自己的 xml 解析器和 system.xml 命名空间之间的性能差异有多大

转载 作者:太空宇宙 更新时间:2023-11-03 17:55:41 25 4
gpt4 key购买 nike

我正在尝试为我的游戏编写一个 xml 解析器,因为使用 system.xml 时最终构建的大小增加了 1+ mb。命名空间。解析器类是一个单例,可以在游戏中随时访问。虽然我要处理的数据量不多,但我仍然担心性能(因为是游戏,我不能牺牲任何性能)。

有什么方法可以有效地处理解析。顺便说一句,我正在使用 c#,如果标签名为 <tag>在那里,我只是将字符串分解成碎片搜索<tag></tag> .这将递归地继续,直到整个字符串被完全分解。结果将保存在我创建的锯齿状列表类中。

有什么办法,我可以改进我的方法,还是应该只使用 System.XML 命名空间。

另请注意:xml 数据来自服务器而不是本地文件。

最佳答案

一些注释(这应该是评论,但太长了):

  • 我无法重现您的问题。使用控制台应用程序,我添加了对 System.Xml 的引用。 , 创建了 XmlDocument ,使用它并编译,并没有看到任何有意义的大小增加。
  • System.Xml是 .Net 基类库的一部分。通常,您可以指望它存在于每台运行 .Net 的机器上(例如,根据 msdn,XmlDocument 在 XNA 中可用,但在可移植类库中不可用)。
  • 如果它是您框架的一部分,请确保您没有设置 Copy Local = 在引用上为真。默认值为 false,但如果为 true,它会将 900 KB 的 DLL 复制到您的目标文件夹。
  • 没有人能回答哪个更快 - 答案非常相关 - 与哪种类型的 XML(小?大?)?在什么类型的机器上?您的用户将使用这些 XML 进行哪些操作?只有您可以通过分析您的代码来回答这些问题。
  • 即使您发现 XmlDocument 很慢或太大,也有无数 XML parsers对于 .Net - 也许其中之一对您有好处。 (即使 .Net 有 XDocument ,但它也需要 System.Xml.dll ,所以那里没有 yield )
  • 一般 ,多个字符串操作很慢。如果您描述的方法是不断搜索和拆分字符串,那听起来很慢 - 我怀疑您需要多次扫描字符串才能解析 XML。
  • 关于c# - 使用自己的 xml 解析器和 system.xml 命名空间之间的性能差异有多大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11822627/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com