转:构建高性能ASP.NET站点 第五章—性能调优综述(中篇)
構建高性能ASP.NET站點 第五章—性能調優綜述(中篇)
前言:本篇主要講述用一些簡單的工具來分析一些與站點性能有關的數據,在上一篇文章中,我們討論了一下性能調優的一般過程,本篇就開始介紹一些方法和工具,讓大家快速的入門。?
?
本章的議題如下:
性能調優的一般過程
利用分析工具分析頁面加載信息
利用分析工具分析性能瓶頸
?
利用分析工具分析加載頁面信息?
???????? 站點的優化說到底還是站點每一個頁面的優化,即使得站點的頁面更快的呈現在用戶的眼前。所以在此之前,我們首先來看看一個web頁面的組成部分:
???????? 1. Html文件:在ASP.NET中,Html文件通常是通過解析.aspx頁面而產生的。而這個解析過程在服務端進行,同時這個過程也消耗了服務端的大部分資源。
???????? 2. 圖片和flash文件:一個站點往往包含很多這樣的的文件。
???????? 3. Js和css文件:這些文件可以阻止頁面的呈現。
?
清楚了頁面的組成部分之后,我們可以把使得頁面加載變慢的因素分為如下幾類:
1.?????? 服務端的花費大量時間解析.aspx,也就是說服務端產生html文本的時間過長(導致這個問題的原因很多,例如數據庫查詢很慢,影響了頁面的生成)。
2.?????? 在服務端和瀏覽器之間,傳遞html文本花費大量的時間(例如,頁面中的Viewstate很大,網絡很慢等)。
3.?????? 圖片和flash文件的加載花費大量的時間。
4.?????? Js和css的加載花費大量的時間。
?
為了使得一個頁面的加載變快,那么我們就得知道:是以上哪一個過程影響了速度(本系列的后續文章會詳細講述)。一旦知道了是那類問題導致了性能問題,那么我們就可以對癥下藥。
????????
下面我們就通過一些工具來簡單的查看和分析站點的性能,目的讓大家快速的了解如何進行簡單的性能分析。
?
我們用瀑布圖來分析頁面的每個組成部分加載所花的時間,例如下面就是博客園首頁加載的分析圖(部分的截圖)。
?
我們可以通過圖中的“時間線“長短來知道每個文件加載的時間。時間線長越長,那么加載該文件的時間越長,反之。
?
看完了上面的圖之后,大家應該很想知道:上面的圖是如何生成的,那么下面就介紹一些生成頁面加載瀑布圖的工具。
?
????? 我們首先來看看:Firefox+Firebug
???????? Firefox下載地址:http://www.mozilla.com/en-US/firefox/
???????? Firebug下載地址:http://getfirebug.com/
?
下面就開始演示如何生成頁面加載的瀑布圖(如果熟悉這個流程的朋友可以跳過此段)
1.?????? 打開Firefox,然后按下F12,就看到如下的畫面:
?
?
2.?????? 在Firebug中,在選擇“網絡”下拉框中選擇“啟用”。
????????
???????? OK,下面我們就來詳細的看看在瀑布圖中一些數據和圖示的意義。
?
1. 請求和響應的相關信息
在瀑布圖中,點擊每一行的”+”如下:
?
?
?
?
符號展開之后,我們可以看到所有的請求和響應頭,如下:
?
?2. 時間線的相關信息
當我們把鼠標移到著色的時間線bar上面的時候,我們就可以看到請求該文件所花的時間的詳細信息,如下:
?
?
我們用一個表格來講述每個時間段的含義:
?
| 域名解析 | 尋找請求的文件所在的服務器的IP地址所花的時間 |
| 建立連接 | 打開客戶端到服務端的TCP鏈接所花的時間 |
| 發送請求 | 瀏覽器發送請求所花的時間。大家可能有點奇怪:為什么發送請求還要等待,難道不是打開連接就發送了請求嗎? 其實瀏覽器會把要請求的文件的請求放在請求隊列中,隊列的長度一般都是有限制的,如果頁面需要請求的文件很多,如果隊列達到了最大的限制數量,那么后續的文件請求會等待。 |
| 等待響應 | 客戶端發送請求一直到接受服務端的第一個字節所花的時間 |
| 接受數據 | 接受整個請求文件或者數據所花的時間 |
| ‘DOMContentLoaded’ 事件 | 從該請求開始進行DNS尋址到整個頁面的DOM被下載下來所花的時間。注意:此時只是頁面的骨架被下載下來了,其中的一些資源(如果圖片,js等)沒有下載下來。當頁面的DOM下載下來了之后,用戶就可以看到了頁面了,但是有些資源還在陸續的下載中。 |
| ‘load’ 事件 | 從該請求開始進行DNS尋址到整個頁面全部(包括資源)下載下來所花的時間。 |
?
3. 頁面級的請求信息
也就是整個頁面的請求的一些匯總信息。
?
OK,今天就基本講述這些,下一篇就開始講述利用分析工具分析性能瓶頸,用上面的瀑布圖來分析一些常見的性能問題,這些性能問題會在后續文章中一個個的給出解決方案,敬請關注! :)
?轉自:http://www.cnblogs.com/yanyangtian/archive/2011/02/10/1950493.html
?
轉載于:https://www.cnblogs.com/KingStar/archive/2011/02/12/1952312.html
總結
以上是生活随笔為你收集整理的转:构建高性能ASP.NET站点 第五章—性能调优综述(中篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css3:绘制android3蜂巢Hon
- 下一篇: ASP.NET 3.5核心编程学习笔记(