我正在處理一個大型(100s程序集)的asp.net應用程序,並且在開發過程中,重新編譯後第一頁可能需要幾分鐘的時間才能加載。在開發過程中加速.net程序集加載時間
我被告知很多延遲來自JITing程序集,並且這個延遲與程序集的數量(但不是大小)成正比。我還沒有測量過。
我們正在研究架構更改以改善情況(結合程序集,分離應用程序),但我想知道是否有任何快速命中修復程序可以解決,例如,更改開發中的IIS設置或組合DLL發佈-建立。
我們使用.net 3.5。
對我有何建議?
我正在處理一個大型(100s程序集)的asp.net應用程序,並且在開發過程中,重新編譯後第一頁可能需要幾分鐘的時間才能加載。在開發過程中加速.net程序集加載時間
我被告知很多延遲來自JITing程序集,並且這個延遲與程序集的數量(但不是大小)成正比。我還沒有測量過。
我們正在研究架構更改以改善情況(結合程序集,分離應用程序),但我想知道是否有任何快速命中修復程序可以解決,例如,更改開發中的IIS設置或組合DLL發佈-建立。
我們使用.net 3.5。
對我有何建議?
羞怯
下面是我應該更早嘗試的解決方案:禁用病毒防護約一分鐘,小於8秒降低初始加載時間。
我在一個類似於你的工程中使用了大量的程序集。我採用的一種策略是僅加載我目前正在開發的開發所需的程序集。
另一種可能性是將所有程序集與後構建操作合併。微軟有這個漂亮的工具叫做ILMerge。它將多個程序集合併成一個。您可以編寫一個後期構建腳本將這些程序集合並在一起。
您還可以通過合併您未更改的程序集並將它們作爲參考添加進一步。
祝你好運!
你可以看看NGEN'ing你的程序集,但如果你試圖加快開發時間後,NGEN是不是真的會幫你很多。用JIT編寫代碼所需要的時間都與NGEN一致,因爲您將不得不爲所有測試創建本機指令。如果有的話,NGEN'ing你的代碼會在前面變得更慢。
如果您不打算製作程序集並且在開發時不構建它們,那麼它們將保持預編譯,您可以在較小的沙箱中工作。 – 2009-01-28 00:56:47