通過 IIS 然后進入 ASP.NET 的。涉及到緩存時,ASP.NET 中的 HttpModule 會接收該請求,并返回緩存中的內容。
如果您正在使用 IIS 6.0,就會發現一個很好的小功能,稱為內核緩存,它不需要對 ASP.NET 進行任何代碼更改。當請求由 ASP.NET 進行輸出緩存時,IIS 內核緩存會接收緩存數據的一個副本。當請求來自網絡驅動程序時,內核級別的驅動程序(無上下文切換到用戶模式)就會接收該請求,如果經過了緩存,則會將緩存的數據刷新到響應,然后完成執行。這就表示,當您將內核模式緩存與 IIS 和 ASP.NET 輸出緩存一起使用時,就會看到令人不敢相信的性能結果。在 ASP.NET 的 Visual Studio 2005 開發過程中,我一度是負責 ASP.NET 性能的程序經理。開發人員完成具體工作,但是我要看到每天進行的所有報告。內核模式緩存結果總是最有意思的。最常見的特征是網絡充滿了請求/響應,而 IIS 運行時的 CPU 使用率只有大約 5%。這太令人震驚了!當然使用 IIS 6.0 還有一些其他原因,但是內核模式緩存是其中最明顯的一個。
===========================
技巧 9 — 使用 Gzip 壓縮
雖然使用 gzip 并不一定是服務器性能技巧(因為您可能會看到 CPU 使用率的提高),但是使用 gzip 壓縮可以減少服務器發送的字節數量。這就使人們覺得頁速度加快了,并且還減少了帶寬的用量。根據所發送數據、可以壓縮的程度以及客戶端瀏覽器是否支持(IIS 只會向支持 gzip 壓縮的客戶端發送經過 gzip 壓縮的內容,如 Internet Explorer 6.0 和 Firefox),您的服務器每秒可以服務于更多的請求。實際上,幾乎每當您減少所返回數據的數量時,都會增加每秒請求數。
Gzip 壓縮已經內置到 IIS 6.0 中,并且其性能比 IIS 5.0 中使用的 gzip 壓縮要好的多,這是好消息。但不幸的是,當嘗試在 IIS 6.0 中打開 gzip 壓縮時,您可能無法在 IIS 的屬性對話中找到該設置。IIS 小組在該服務器中置入了卓越的 gzip 功能,但是忘了包括一個用于啟用該功能的管理 UI。要啟用 gzip 壓縮,您必須深入到 IIS 6.0 的 XML 配置設置內部(這樣不會引起心臟虛弱)。順便提一句,這歸功于 OrcsWeb 的 Scott Forsyth,他幫助我提出了在 OrcsWeb 上宿主的www.asp.net服務器的這個問題。
本文就不講述步驟了,請閱讀 Brad Wilson 的文章,網址是 IIS6 Compression。還有一篇有關為 ASPX 啟用壓縮的知識庫文章,網址是 Enable ASPX Compression in IIS。但是您應該注意,由于一些實施細節,IIS 6.0 中不能同時存在動態壓縮和內核緩存。
==============================
技巧 10 — 服務器控件視圖狀態
視圖狀態是一個有趣的名稱,用于表示在所生成頁的隱藏輸出字段中存儲一些狀態數據的 ASP.NET。當該頁張貼回服務器時,服務器可以分析、驗證、并將此視圖狀態數據應用回該頁的控件樹。視圖狀態是一個非常強大的功能,因為它允許狀態與客戶端一起保持,并且它不需要 cookie 或服務器內存即可保存此狀態。很多 ASP.NET 服務器控件都使用視圖狀態來保持在與頁元素進行交互期間創建的設置,例如保存對數據進行分頁時顯示的當前頁。
然而使用視圖狀態也有一些缺點。首先,服務或請求頁時,它都會增加頁的總負載。對張貼回服務器的視圖狀態數據進行序列化或取消序列化時,也會發生額外的開銷。最后,視圖狀態會增加服務器上的內存分配。
幾個服務器控件有著過度使用視圖狀態的趨勢,即使在并不需要的情況下也要使用它,其中最著名的是 DataGrid。ViewState 屬性的默認行為是啟用,但是如果您不需要,則可以在控件或頁級別關閉。在控件內,只需將 EnableViewState 屬性設置為 false,或者在頁中使用下列設置即可對其進行全局設置:
<%@ Page EnableViewState="false" %>
如果您不回發頁,或者總是針對每個請求重新生成頁上的控件,則應該在頁級別禁用視圖狀態。
==============================
小結
我為您講述了一些我認為在編寫高性能 ASP.NET 應用程序時有所幫助的技巧。正如我在本文前面部分提到的那樣,這是一個初步指南,并不是 ASP.NET 性能的最后結果。(有關改善 ASP.NET 應用程序性能的信息,請參閱 Improving ASP.NET Performance。)只有通過自己的親身體驗才能找出解決具體性能問題的最好方法。但是,在您的旅程中,這些技巧應該會為您提供一些好的指南
文章來源于領測軟件測試網 http://www.k11sc111.com/