【问题标题】:Deserializing the first time takes significantly longer than follow up deserializations第一次反序列化比后续反序列化花费的时间要长得多
【发布时间】:2013-11-11 14:14:27
【问题描述】:

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

这是什么原因?是否有机会提高第一次反序列化的性能(比如也将其降低到 1.5 秒)?

【问题讨论】:

标签: c# .net serialization deserialization datacontractserializer


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2011-05-03
    相关资源
    最近更新 更多