使用Singleton改善ASP.NET性能備注

發表于:2008-05-06來源:作者:點擊數: 標簽:性能Singleton備注NetNET
在最近的ASP.NET項目中,我們在 測試 期間發現系統 性能 低下。最開始我們懷疑是由于使用了過多的UserControl所致。但是由于這已經是項目晚期,已經不可能再推翻以往的設計架構重來。所以我們不得不尋找其它可以改善性能的方法。 剛開始我們使用緩存來進行改
在最近的ASP.NET項目中,我們在測試期間發現系統性能低下。最開始我們懷疑是由于使用了過多的UserControl所致。但是由于這已經是項目晚期,已經不可能再推翻以往的設計架構重來。所以我們不得不尋找其它可以改善性能的方法。

  剛開始我們使用緩存來進行改善。但是我們的頁面中大量的數據都是隨時變化的,.net framework不夠精確的緩存命中率給我們的數據一致性表現帶來尷尬的處境。

 其次Viewstate的優化似乎也沒有什么效果,可以優化的地方少之又少。

  唯一可以做的便是將大量頁面的SessionState改為ReadOnly,因為我們需要在處理過程中使用Session進行用戶效驗。

  最后我們不得不從后臺處理來考慮。我們發現后臺的服務類以及業務邏輯被頻繁調用,所以我們使用Singleton模式將底層業務邏輯類和工具類進行了重構,發現性能大幅提升。雖然有人說Singleton的一個缺點便是每次都需要檢查類是否創建,這會消耗資源。但是檢查所消耗的資源總比創建要小得多吧,何況不會無止境的吞噬寶貴的內存。

 這次的經歷告訴我們一個教訓:良好的結構將會保證系統的穩定性和性能。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97