也談ASP.NET應用程式效能最佳化

來源:互聯網
上載者:User
[把前一段時間給單位項目所做效能最佳化的一些想法整理了以下,分享交流]
ASP.NET 應用程式效能最佳化
1 前言
效能最佳化的主要目標是提高“並發使用者數量”,“輸送量”,“可靠性”這樣幾個指標。
本質上說,效能最佳化的工作應該是多方面的,要做到“點面結合、由表及裡”。比如:從代價的角度來考慮,應盡量做到改動量小,易實施;從使用者角度看,應做到快速響應或快速提示;從軟體結構的角度看,又要兼顧到系統結構的合理性和可擴充性。由此不難發現,在嘗試一些改進方法時往往很難做到面面俱到。
舉一個簡單的例子:
在一個商務邏輯類中,我們封裝了一些處理方法,其中有一個方法的功能是尋找一個節點ID在XML檔案是否已經存在。那我們自然會想到寫兩個方法:
XmlDocument LoadXML(string strFileID)     //載入XML
bool CheckIDExisit(string strFileID,string strID)     //判斷節點是否存在
而且,載入XML的方法在其他地方還可以重用;表面上看,這段代碼的結構和功能都沒有問題。可是在運行時,如果你的邏輯中直接或間接調用了LoadXML多次的話,你會發現程式很慢。原因就在於載入XML檔案是個耗時動作,解決的方法很簡單,我們再提供幾個方法即可:
bool CheckIDExisitByXml (string strXml,string strID)     //判斷節點是否存在
或 bool CheckIDExisitByXml (XmlDocument objXml,string strID)     //判斷節點是否存在
這樣,我們就可以通過“一次載入”實現多次借用,效率明顯提升。所以,在軟體結構設計時就應將可重用“珍貴”資料來源的因素考慮進來。(這裡的“珍貴”資料來源是指那些經過複雜處理或長時間計算才得到的各種對象或記錄集)。
效能最佳化的工作又應是長期的,因為我們的工作始終是建立在OS,Web Server, DB Server,  Complier & Program Language等等的基礎上的。如果你熟悉.NET, JAVA,IIS, J2EE, 你就會發現有些功能或API這個平台提供了,另一個卻沒有;所以更多時候我們需要過渡的解決方案,等到新版本出來時,我們可能就會拋棄過渡方案直接配置或更簡便的實現一些功能。[...]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.