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