2010-11-09 91 views
5

我差不多這個網上圖書館做:http://gramma.ro網站速度改進的建議?

我在YSlow的C級,但我還是不滿意消耗這個 網站要加載的平均時間(約7秒鐘,我的互聯網連接) 。

也許有些人會說,它工作得很好,但請的這一個速度比較:http://www.libris.ro/這是絕對快。

你有我的應用程序有什麼建議?你看到我可以改進的關鍵地方,這可以嚴重減少我的網站的加載時間?

數據庫使用:SQL服務器2008

中使用的語言:C#+ asp.net

硬件使用:專用服務器,AMD 64 2.2千兆赫,2 GB RAM

在此先感謝...

UPDATE:I'我使用OutputCache(1小時或1天)選項來控制我的頁面上的4個用戶控件,從而改善了網站的加載速度3秒!

+0

YSlow說什麼?爲什麼不從改進這些開始? – Martin 2010-11-09 20:45:09

+0

因爲我從F級到C級,並沒有像我預期的那樣提高速度...... – 2010-11-09 20:46:59

+0

你在ASP.Net端做過任何測試嗎?這可能是導致大部分延遲的原因 – 2010-11-09 20:51:39

回答

2

簡單的答案就是升級硬件。不過,我認爲可能有一些簡單的改進點。

內存使用情況如何?你是否緩存了正確的東西(類似NHibernate SessionFactory的東西不應該在每個請求中被新增)。

也許你可以使用代碼分析器分析您的web應用。我已經成功地使用了JetBrains的DotTrace,它有一個試用版afaik。您只需選擇應用程序配置文件,運行一些請求並檢查輸出的哪些方法花費太多時間。然後,您可以深入研究這些方法,以查看哪一段代碼確切地需要很長時間。

衡量代碼的性能很重要,因爲你(通常)不能獨自一人去感受。

哦,你可能已經知道一件事:它不是一個文件大小的問題,這意味着它也不是一個大的視圖狀態問題。

+0

+1用於衡量性能。 – Geoff 2010-11-09 20:56:09

+0

極其有用的DotTrace.Ive剛開始測量性能和發現查詢500〜700 ms正在加載...謝謝! – 2010-11-09 21:52:06

+0

@Cristian:請注意,DotTrace不是永久免費的,您需要許可才能在試用後繼續使用它 – 2010-11-09 23:12:54

1

這取決於很多事情:

  1. 往返數據庫服務器
  2. 編譯代碼或不
  3. 大的ViewState導致巨大的下載文件
  4. 大量的圖片必須是下載

所以很難講不知道你的應用程序的一些具體細節

建議:

  1. 創建靜態資源,如圖片,js和css文件
  2. 編譯應用程序靜態主機頭(發佈)
  3. 優化圖像用於網絡
  4. 使用緩存
+0

來自意見建議:2.不幸的是,我使用web dev express,它沒有發佈工具.... :( – 2010-11-09 20:52:35

0
  1. 而不是在標題中的樣式標記中有你的css,將其拉出到外部的css文件。

  2. 將任何內聯樣式拉出到css文件,也就是頂部具有英里長樣式屬性的div標籤。

加載這麼長時間的原因是您試圖在一個頁面上推送太多文本。如果您將其提取到外部文件,它會在下次緩存它,並使您的初始頁面加載速度更快。

+1

說實話,頁面大小真的不是當然不足以保證7s的頁面加載量 – 2010-11-09 20:54:11

+0

從源頭上看,內容的數量不應該成爲問題,他應該先看看他的服務器和/或代碼。 – 2010-11-09 21:24:42

1

關閉我的頭頂(並且沒有看到您的代碼): 我假設您正在從數據庫構建您的列表 - 該SQL看起來像什麼?你有沒有優化查詢/查詢?表索引是否設置正確?此外,在適當的情況下,只要簡單地使用with (nolock)就可以產生巨大的差異。

該網站需要一段時間才能爲我初次加載,所以我假設減速是在您的數據檢索。

0

緩存昂貴的數據庫請求,減少圖片的大小,如果可能的話,從CDN加載JavaScript的圖書館的

1

工具只能提供有關客戶端問題的建議。

從Firebug的時間線看來,您的問題主要出現在服務器端。如果不知道服務器的規格(它可能負載太重),我不得不假設你的代碼太慢了。

使用分析工具來找出你的代碼的哪些部分需要這麼長時間,並找到優化它的方法。通常你會發現應用了80/20規則,即大部分運行時間僅由一小部分代碼佔用。這意味着重大問題通常很容易找到並解決,但您越解決問題就越難以進一步改進。性能分析通常是查找瓶頸的最簡單方法,所以從修復這些瓶頸開始。

1

這是一個較老的問題,但如果網站沒有改變,答案是可怕的。

藏書票是加載:

  • 〜圖像500KB
  • 140KB的JS
  • 只有85 HTTP請求
  • 總下載:737KB

GRAMMA是負載:

  • 圖像〜1050KB
  • 275KB的JS
  • 有113個HTTP請求
  • 總下載:1537KB

基本上,你的網站是雙重的大小几乎每一個方面,加你正在使用Flash,這又在客戶端機器上打了一針。

使用CSS Sprites和縮小你的JS肯定會有所幫助。請注意,這些數字是第一次加載的,您的網站在一分鐘後下載的內容越來越多,超過了10MB,而Libris網站則更加靜態。