我試圖確定一個很長的(imho)ASP.NET應用程序初始啓動的原因。ASP.NET啓動性能分析網絡
該應用程序使用各種第三方庫,並且我確信可以合併很多引用,但是,我試圖找出(並歸咎於)dll以及它們對擴展啓動過程有多大貢獻。
到目前爲止,啓動時間從2-5分鐘不等,具體取決於盒子上其他物品的使用情況。基於網站的複雜性,我認爲這是不可接受的,我需要將其降低到最多30秒的範圍內。
爲了清楚我正在尋找的性能範圍,這是從第一次請求到最初的Application_Start方法被擊中的時間。
那麼我從哪裏開始獲取關於哪些DLL被加載的信息,以及它們需要加載多長時間,以便我可以嘗試將成本/收益放在一起,以便我們需要解決/合併。從能力的角度來看,我一直在使用JetBrains dotTrace一段時間,並且我清楚如何在應用程序中對應用程序進行基準測試,但看起來這是應用程序代碼之外的,並且因此超出了我目前所知的範圍。
我在找的是關於如何在我的代碼中獲得第一個入口點之前發生的情況的方法。
注意:我知道我可以在回收/升級時調用默認頁面來執行初始加載,但我寧願解決實際問題,而不是在其上進行清理。
注2:硬件超過規模足夠大,並在功能方面分開,所以我相當肯定,這不是問題。
請與「這是項目*不可接受*」或「這是*我看來不可接受*」,因爲答案將是顯着不同的決定:一個是什麼(如果有的話)做,以實現生產應用程序的目標,另一個 - 如何娛樂/教育你自己的負載性能。 –
2-5分鐘的啓動時間可能會同時滿足這兩個標準。如果應用程序域回收並且服務停止2-5分鐘,我無法想象任何可以接受的開發人員*或*項目。 –
我會更新的問題,這是Application_Start方法中被擊中前的時間。 – Martin