gpt4 book ai didi

c# - 为什么我的 .NET 启动时间随着预生成的序列化程序集而增加?

转载 作者:可可西里 更新时间:2023-11-01 09:15:49 25 4
gpt4 key购买 nike

我有一个相当大且复杂的 winforms 应用程序。为了减少启动时间,我使用以下批处理文件预先生成了序列化程序集。

; delete any existing serialization assemblies
del *XmlSerializers.dll

; gen new serialization assemblies
for %%a in (*.dll) do sgen /assembly:%%a

; delete .deleted files (generated for assemblies which do not allow serialization)
del *.dll.deleted*

然而,令我惊讶的是,启动时间实际上从 4.6 秒增加到 6.1 秒 - 跳跃了 1.5 秒。无论是冷启动还是热启动,这都是正确的。

那么,问题:

  1. 为什么我的应用在使用序列化程序集时启动速度较慢?
  2. 有没有办法通过 Perfmon 或其他工具查看应用程序何时生成序列化程序集?
  3. 我是否正确生成序列化程序集?

最佳答案

您应该分析您的应用程序以了解启动时间增加的原因。 Perfview 将是一个很好的工具。

如果在 JITtting 上花费了太多时间,请考虑将 NGEN 作为您的应用程序。如果加载的页面过多,如果您在 .Net 4.5 下运行,请考虑使用 mpgo 优化

关于c# - 为什么我的 .NET 启动时间随着预生成的序列化程序集而增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962403/

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