在开发过程中加快.net程序集加载时间

时间:2009-01-28 00:42:22

标签: asp.net

我正在开发一个大型(100个程序集)的asp.net应用程序,在开发过程中,重新编译后加载第一页可能需要几分钟。

我被告知,大部分延迟来自JITing程序集,并且此延迟与程序集的数量(但不是大小)成比例。我还没有测量过这个。

我们正在进行体系结构更改以改善情况(组合程序集,解耦应用程序)但我想知道是否有任何快速修复我可以获得,例如,更改开发中的IIS设置或组合DLL后建立。

我们正在使用.net 3.5。

对我有什么建议吗?

4 个答案:

答案 0 :(得分:3)

预览编译应用程序以删除JIT。

ngen

预编译您不使用的程序集,创建不构建您不使用的程序集的自定义构建配置,然后只需要JIT。

答案 1 :(得分:2)

我参与了一个类似于你的项目,有大量的装配。我采用的一个策略是仅加载我正在进行的开发所需的程序集。

另一种可能性是将所有程序集与后构建操作合并。微软有一个名为ILMerge的漂亮工具。它将多个程序集合并为一个。您可以编写一个构建后脚本来将这些程序集合并在一起。

您还可以通过合并未更改的程序集并将其添加为参考来进一步采取此步骤。

最好的运气!

答案 2 :(得分:2)

羞怯

这是我之前应该尝试过的解决方案:禁用病毒防护会将初始加载时间从大约一分钟缩短到不到8秒。

答案 3 :(得分:0)

你可以看看NGEN你的装配,但是如果你想在构建之后加快开发的时间,那么NGEN并不会真正帮助你。 JIT代码所花费的时间都将与NGEN保持一致,因为您必须为测试所有内容创建本机指令。如果有的话,NGEN你的代码会比较慢。