2009-01-28 57 views
4

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

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

我们正在研究架构更改以改善情况(结合程序集,分离应用程序),但我想知道是否有任何快速命中修复程序可以解决,例如,更改开发中的IIS设置或组合DLL发布-建立。

我们使用.net 3.5。

对我有何建议?

回答

2

羞怯

下面是我应该更早尝试的解决方案:禁用病毒防护约一分钟,小于8秒降低初始加载时间。

3

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

ngen

预编译你不工作时,创建自定义创建不建立你不工作的组件,然后只需要意志JIT的那些配置的组件。

2

我在一个类似于你的工程中使用了大量的程序集。我采用的一种策略是仅加载我目前正在开发的开发所需的程序集。

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

您还可以通过合并您未更改的程序集并将它们作为参考添加进一步。

祝你好运!

0

你可以看看NGEN'ing你的程序集,但如果你试图加快开发时间后,NGEN是不是真的会帮你很多。用JIT编写代码所需要的时间都与NGEN一致,因为您将不得不为所有测试创建本机指令。如果有的话,NGEN'ing你的代码会在前面变得更慢。

+0

如果您不打算制作程序集并且在开发时不构建它们,那么它们将保持预编译,您可以在较小的沙箱中工作。 – 2009-01-28 00:56:47