【发布时间】:2023-04-01 03:23:01
【问题描述】:
阿罗哈,
我有一个想要反序列化的 8MB XML 文件。 我正在使用此代码:
public static T Deserialize<T>(string xml)
{
TextReader reader = new StringReader(xml);
Type type = typeof(T);
XmlSerializer serializer = new XmlSerializer(type);
T obj = (T)serializer.Deserialize(reader);
return obj;
}
这段代码运行大约需要一分钟,这对我来说似乎相当慢。我尝试使用 sgen.exe 来预编译序列化 dll,但这并没有改变性能。
我还有哪些其他选择可以提高性能?
[编辑] 我需要反序列化创建的对象来执行(基本)转换。 XML 是从外部网络服务接收的。
【问题讨论】:
-
您要应用什么样的转换?您是否考虑过使用 XSLT(与 XmlReader 或 XPathDocument 结合使用)?
-
在哪一行代码中花费的时间更多?创建序列化程序还是反序列化本身?
标签: c# performance xml-serialization sgen