第一次反序列化比后续反序列化要长得多

时间:2013-10-31 14:10:54

标签: c# .net serialization deserialization datacontractserializer

我使用.NET DataContractSerializer在第一次加载应用程序的3秒内从文件反序列化对象树。当我一次又一次地运行相同的反序列化步骤时,它只需要1.5秒。

这是什么原因?有没有机会在第一次反序列化时提高性能(比如将它降低到1.5秒)?

1 个答案:

答案 0 :(得分:3)

您是否尝试过使用SGen?该进程第一次尝试反序列化时,必须使用反射生成序列化代码。这为首次运行增加了相当大的成本。

  

当不使用XML Serializer Generator时,每次运行应用程序时,XmlSerializer都会为每种类型生成序列化代码和序列化程序集。若要提高XML序列化启动的性能,请使用Sgen.exe工具预先生成程序集的程序集。然后可以使用应用程序部署这些程序集。