如何真正提高ASP.NET網站的性能

前言

怎麼才能讓asp.net網站飛得更快,有更好的性能?——這是很多開發者常常思考的一個問題。我有時候會做大量的測試,或請求別人幫忙採集一些數據,希望能夠驗證網上一些專家的建議或證明自己的一些猜想。

理論上講,我們希望能開發出性能最優的網站,但是公司能否承擔爲此要付出的成本?這是實踐過程中常常遇到的矛盾。 如何合理運用已知技巧在實戰中是最有意義話題。

本文羅列出一些優化的經驗和方案,成文之前有幸看了一些高質量的文章。想強調一點,很多的部分不是我個人的勞動成果,但我完全的支持和同意這樣去做,不敢獨享,希望拋磚引玉,共同長進。

IIS設置

如果你的IIS服務器不需要外出訪問互聯網,關閉Certificate Revocation List (CRL)machine.config 中 generatePublisherEvidence證書撤銷清單的Authenticode的二進制文件(CRL)檢查。

可以參考下面的文章:

http://msdn.microsoft.com/zh-cn/library/bb629393.aspx

打開IIS Compression (HTTP 壓縮), 默認情況下IIS7.x 和 IIS6 都沒有打開這項。 這可以幫助你提高帶寬的使用效率。啓用壓縮提高 IIS 與啓用壓縮的瀏覽器之間的傳輸速度。 尤其對於移動設備,採用壓縮可以提高性能。

僅限靜態文件

僅限動態應用程序響應

靜態文件和動態應用程序響應

IIS 提供下列壓縮選項:

注意: 壓縮動態應用程序響應會影響 CPU 資源,因爲 IIS 不緩存動態輸出的壓縮版本。

因爲動態壓縮會消耗大量的 CPU 時間和內存資源,所以應當僅在滿足下列條件的服務器上使用它:網絡連接速度很慢,但有多餘的 CPU 時間。

與動態響應不同,可以對壓縮的靜態響應進行緩存,同時不會降低 CPU 資源的性能。

靜態文件的優化

儘量合併文件的靜態內容(如js文件和css文件)。 這有利於更快地下載此類文件,理想的情況下,合併成一個單一的JS和CSS文件。

先加載CSS然後加載Javascript

避免在HTML中對圖片使用Width height, 例如 <img width="400" height="280" src="myimage.jpg" />

代碼的優化

確保默認下關閉ViewState,真正需要它時才啓用。 關閉ViewState可以從根本上減少頁面的大小,並顯着提高頁面加載時間。

啓用ASP.NET輸出緩存。 不幸的是,這有可能需要你花時間研究一個個ASPX頁面。

啓用Web service 的輸出緩存。 你的Web service 在任何給定的輸入參數下總是返回相同結果, 你可以使用這種緩存。

如果你使用了ASP.NET Ajax,確保在web.config 中設置了 <compilation debug="false"/>。 這避免了客戶端和服務器端“昂貴的”參數驗證。

工具

使用YSlow來測量網頁加載時間。如果有必要我會介紹如何使用Yslow。在這裏先上幾個截圖,讓大家有一定了解:

FireBug——這是另外一款利器,你可以很容易得到如何使用它的文章。

其他

如果應用程序需要從XML反序列化任何數據(包括 web services),請預先使用 Sgen.exe (XML 序列化程序生成器工具)生成程序集。 不使用 XML 序列化程序生成器時,XmlSerializer 在應用程序每次運行時爲每個類型生成序列化代碼和一個序列化程序集。

可以參考下面的文章瞭解更多關於SGEN :

http://msdn.microsoft.com/zh-cn/library/bk3w6240%28v=VS.100%29.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章