2009-12-31 132 views
5

我們能做些什麼才能使asp.net web應用程序的運行速度比以前更快。它需要什麼調整?使asp.net web應用程序運行速度更快的技巧

+0

什麼類型的應用程序? 你有一個數據庫嗎? 你正在運行計算? 完全主觀的問題.... – 2009-12-31 17:37:19

+0

該應用程序是一個asp.net web應用程序,包含82個網頁,34個報告(包括圖形和文本),DB是sql server 2005.頁面平均響應時間約爲4-5秒。 – HotTester 2009-12-31 18:00:12

+0

感謝您的所有回覆,我非常感謝您的所有建議......我採取了以下解決方案:首先,我通過查詢優化工具優化了所有查詢。其次我增加了託管應用程序的服務器的內存(以前它是512 MB RAM和現在2 GB)。最後,我消除了所有不需要的視圖狀態 - >結果應用程序運行速度非常快,平均響應時間現在爲1-2秒。如果有人有更多的分享,我非常歡迎 – HotTester 2010-01-05 08:16:08

回答

6

爲了讓任何應用程序運行得更快,首先要找出它花費的時間,然後讓它花更少的時間在那裏。使用分析器。


分析器簡化了將應用程序分解成小塊並且加速各個塊的過程。如果你買不起探測器,你可以自己做。

例如,你說你的平均響應時間是4-5秒。這是一段很長的時間。這5秒內發生了什麼?這一切都在等待數據庫嗎?您可以嘗試在應用程序外部運行查詢,查看它們需要多長時間。您可以運行SQL Server Profiler在一段時間內記錄數據庫事務,然後通過數據庫調整嚮導運行結果。它可能會對數據庫的索引進行更改。

您可以使用Fiddler或打開頁面跟蹤來查明您的頁面是否太大。追蹤可以告訴你頁面操作的特定階段需要多長時間。也許你需要很長的時間來呈現某些頁面。

此外,你需要看看你的服務器的性能。你使用的CPU太多了嗎?內存太多?你是否花時間處理頁面顛簸,敲開ASP.NET工作進程的頁面內存不足以引入SQL Server頁面,只有當數據庫查詢完成時工作進程需要這些頁面纔會崩潰再次運行?

將問題分解成小塊,然後修復這些小塊。

+0

使用網絡應用程序,它並不總是那麼容易...... – RickNZ 2009-12-31 22:55:08

+0

爲什麼不呢?你有沒有試過JetBrains的dotTrace?它在分析ASP.NET應用程序方面做得很好。 – 2009-12-31 22:58:05

+0

是這些探查工具的免費軟件嗎? – HotTester 2010-01-01 08:09:34

5

緩存(包括頁面和數據)以及優化數據訪問可能是在不改變硬件的情況下提高性能的關鍵因素。除此之外,您可以查看集羣/負載平衡以提供更多資源。

3

ASP.NET的性能調整是一個很大的課題。事實上,爲了給你的問題提供一個全面的答案,我寫了一本關於它的書:Ultra-Fast ASP.NET: Build Ultra-Fast and Ultra-Scalable web sites with ASP.NET and SQL Server

從高層:

  • 儘量減少往返,客戶端和服務器之間,以及服務器和數據庫之間的感知性能
  • 焦點
  • 最大限度地減少阻塞調用
  • 緩存在所有層
  • 優化磁盤I/O管理
  • 優化瀏覽器對象加載和渲染順序
  • 避免使用Ajax,Silverlight和JavaScript的全頁面重載
  • 避免同步突發寫入
  • 利用監測和儀表
  • 瞭解SQL Server如何管理內存
  • 有效利用分區的數據層

我的方法很大程度上是規定性的,而不是理論性的。您可以查看亞馬遜上的評論,瞭解我的意思。

+0

加入我的書籍隊列。感謝您鏈接它。 – 2010-01-23 06:57:26

2

這是一個很大的話題,但浮現在腦海中的主要事情:

  • 保持ViewState的大小下來
  • 較少的回傳。儘可能使用javascript來避免它們。驗證控件是如何工作的一個很好的例子。
  • 有一個良好的緩存策略

還有非ASP。專用網的東西,像這樣的:

  • 確保您的數據庫查詢不陷入泥淖你失望
  • 減少HTTP請求
  • 保持靜態資源在單獨使用Cookie的域
  • 輪廓你花時間之前優化,這樣你就不會浪費時間來優化錯誤的東西

您也可能會發現這個問題有所幫助:
https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site