我使用 .NET DataContractSerializer 从文件中反序列化对象树,在第一次加载应用程序的 3 秒内。当我一次又一次地运行相同的反序列化步骤时,只需要 1.5 秒。
这是什么原因?第一次反序列化是否有机会提高性能(比如也将其降低到 1.5 秒)?
我使用 .NET DataContractSerializer 从文件中反序列化对象树,在第一次加载应用程序的 3 秒内。当我一次又一次地运行相同的反序列化步骤时,只需要 1.5 秒。
这是什么原因?第一次反序列化是否有机会提高性能(比如也将其降低到 1.5 秒)?
您是否尝试过使用SGen?进程第一次尝试反序列化时,它必须使用反射生成序列化代码。这给第一次运行增加了相当大的成本。
当不使用 XML 序列化程序生成器时,每次运行应用程序时,XmlSerializer 都会为每种类型生成序列化代码和序列化程序集。为了提高 XML 序列化启动的性能,请使用 Sgen.exe 工具预先生成这些程序集。然后可以将这些程序集与应用程序一起部署。