2011-04-11 55 views
1

嗨 當多個用戶訪問我的應用程序大約5000個用戶時,我想提高asp.net應用程序的性能。如何提高asp.net應用程序的性能?

我們能做到這一點

+1

問題需要大量的更多信息,並具體談談您的問題。 – 2011-04-11 07:41:01

+0

許多更多的信息,同意...喜歡,這個應用程序是什麼?你的硬件是什麼?你目前可以支持多少用戶? – bdares 2011-04-11 07:49:27

+0

http://stackoverflow.com/questions/1340218/asp-net-website-slow-performance-on-production-server/1340629#1340629 – 2011-04-11 08:15:06

回答

11

你的ASP.NET應用程序的性能取決於很多方面。你可以通過做各種事情來提高你的網站的性能。你的問題是非常主觀的,當然,答案會是一些關於提高ASP.NET應用程序性能的最佳實踐。

我收集了一些來自網絡的提示。不幸的是,我不記得在哪裏。搜索在任何項目上,你會發現很多資源,可以幫助你實現它:

  • 使用緩存:
    • 頁面輸出緩存。
    • 頁面片段緩存。
    • 數據緩存。
  • 避免頻繁訪問數據庫。
  • 使用數據庫級分頁。不要檢索不會顯示在當前頁面中的不必要的數據。
  • 請小心會話變量。通常,您應該避免使用會話變量,因爲每個ASP頁面都運行在不同的線程中,會話調用將逐個序列化。所以,這會減慢應用程序。除了會話變量,您可以在保存值的表單中使用QueryString集合或隱藏變量。
  • 在爲應用程序進行最終生成之前選擇發佈模式。
  • 設置調試=正在編制虛假:<compilation default Language="c#" debug="false">
  • 避免內嵌JavaScript和CSS
  • 使用最後的方法殺死資源。 (但不是在使用的情況下)
  • 避免例外情況:如果條件(如果它是檢查適當的條件)使用
  • 檢查「Page.IsPostBack」。避免重複執行代碼。
  • 使用單個css文件而不是多個css文件。
  • 使用客戶端驗證。 (但並非所有的時間你都必須在服務器端進行驗證)。
  • 除非需要,否則請關閉追蹤。
  • 如果不需要,請關閉會話狀態。
  • 不需要時禁用ViewState。
  • 嘗試使用StringBuilder而不是字符串。

    當字符串被修正時,使用Stringbuilder而不是字符串是很好的。字符串使用單個內存位置時,字符串在每次修改時佔用不同的內存位置。

  • 不要直接使用對象值;首先在局部變量中獲取對象值,然後使用。這需要更多的時間,然後變量閱讀。
  • 避免使用像x = x + 1這樣的代碼;使用x + = 1總是更好。
  • 數據訪問技術:提供的DataReader數據檢索的快速且有效的方法。就性能而言,DataReader比DataSet要快得多。但這取決於你決定在特性/性能之間取得平衡。
  • 使用中繼器控制的數據網格代替,DataList的,因爲它是有效的,可定製的,和可編程的。
  • 減小cookie大小。
  • 壓縮CSS,JavaScript和圖片。
  • 使用服務器端壓縮軟件,如Port80s
  • 使您的頁面文件儘可能輕。這是爲了避免不必要的標記,例如使用div元素而不是表格。
  • 在格寫靜態信息並使其可見,如果必要。這比讓服務器設置標籤或div的Text屬性更快。
  • 從數據庫中獲取必要的數據一次,如果可能的話。儘可能不要加在數據庫之外。爲此,結合不同表格的數據區域並選擇它們。

+0

好點.... – shanish 2014-02-26 09:53:00

0

從HTML刪除空格它會增加你KB。您可以使用正則表達式來刪除空格。我將發佈下一篇文章去除空白的代碼。

對於asp.net 2.0及更高版本使用母版頁。它會增加你的表現。

對ado.net方法使用ADO.NET異步調用。 asp.net 2.0或更高版本支持你的表現。如果您多次使用相同的過程或命令,那麼使用ADO.NET Prepare命令可以提高性能。

按照您的要求進行IIS性能調整。

如果可能的話,禁用您的控件的視圖狀態。如果您使用的是asp.net 2.0或更高版本,則使用asp.net控件狀態而不是視圖狀態。通過覆蓋存儲視圖狀態的默認方法將視圖狀態保存在會話或數據庫中

明智地爲您的應用程序使用Ajax。大量的Ajax調用頁面也會降低您的性能。

從Java腳本而不是服務器端調用Web服務。使用異步調用從Web服務調用Web方法。