2012-04-16 53 views
3

我有一個Windows Azure應用程序(Asp Net Mvc 4)。 在這個應用程序中有一些Ajax。一些請求使用簡單的內存中服務器邏輯(沒有sql,沒有外部Web服務)。 當我在調試模式下本地運行它時,ajax請求獲取響應大約需要900 ms。 本地處於釋放模式,大約需要30毫秒(可以)。 當我將應用程序發佈到Azure時,獲取響應的請求需要450 ms。我嘗試調試模式和發佈,還有云和本地服務配置。在所有情況下,需要450毫秒。 問題:有沒有我沒有考慮到的事情?以調試或發佈模式發佈到Windows Azure

+0

你的服務在做什麼?任何外部(I/O或網絡延遲綁定)操作?你在測量什麼?客戶往返時間還是記錄您的運營的服務方完成時間? – 2012-04-16 16:01:49

+0

它只是從內存緩存中獲取一些數據並將其返回。我測量客戶往返時間。 – 2012-04-16 16:02:53

+2

您是否試圖連接(通過遠程桌面)另一個天青實例以消除網絡延遲/帶寬作爲一個可能的問題? – 2012-04-16 16:52:29

回答

1

正確診斷你的ASP.NET MVC應用程序的性能,你需要考慮:

  1. 潛伏期您的客戶端計算機和服務器之間。使用ping實用程序來衡量。
  2. 建立HTTP和/或HTTPS連接所用的時間。
  3. 等待您的瀏覽器可能正在發出的其他併發請求花費的時間。
  4. 數據傳輸時間,既可以發送請求,也可以檢索響應。
  5. 由於過載而在Web服務器上排隊。
  6. 實際處理請求的服務器上花費的時間。您可以使用this article中描述的StopwatchAttribute來測量。使用從GitHub當前的代碼,但因爲文章中的代碼與ASP.NET MVC兼容3.

工具,比如Chrome的和Internet Explorer的開發工具,Firefox的螢火蟲和Yahoo的YSlow的可以給你一個更深入的瞭解對你的應用程序的性能。