繁体   English   中英

为什么我的.NET启动时间会因预先生成的序列化程序集而增加?

[英]Why does my .NET start-up time increase with pre-generated serialization assemblies?

我有一个非常大而复杂的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优化

因为.NET必须检查签名是否有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM