日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

使用PerfView监测.NET程序性能(四):折叠,过滤和时间范围选择

發(fā)布時(shí)間:2023/12/4 asp.net 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用PerfView监测.NET程序性能(四):折叠,过滤和时间范围选择 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在上一篇文章使用PerfView監(jiān)測(cè).NET程序性能(三):分組中,我們使用了Perfview的分組功能。分組功能旨在對(duì)某些函數(shù)按照某個(gè)格式進(jìn)行分組,以減少視圖中的各種無(wú)關(guān)函數(shù)的數(shù)量。但僅有分組還不夠,有時(shí)我們想將一些函數(shù)調(diào)用信息按某些條件過(guò)濾掉,例如將采用小于1%的函數(shù)調(diào)用信息去掉,或者將函數(shù)名中包含某個(gè)字眼的函數(shù)信息去掉,甚至只顯示某個(gè)時(shí)間段調(diào)用的函數(shù)。這就需要用到PerfView提供的過(guò)濾(Filtering)功能了。PerfVIew提供了3種過(guò)濾功能:折疊(Folding),匹配過(guò)濾,和時(shí)間范圍選擇(Set Time Range)

折疊(Folding)

PerfView在界面上提供了兩種Folding功能:“Fold%” 和 “FoldPats”.


“Fold%”意思是,將采樣少于該百分比的函數(shù)調(diào)用信息條目“折疊”掉,并將其采樣時(shí)間累加到這些函數(shù)的調(diào)用者。這里“折疊”的意思其實(shí)應(yīng)該說(shuō)是隱藏掉。

“FoldPats”:與“Fold%”類似,會(huì)將符合條件的函數(shù)調(diào)用記錄“折疊”(或“隱藏”)掉,而它的采樣時(shí)間將會(huì)算在它的直接調(diào)用者頭上。而與“Fold%”不同的是它的條件不是“Inc%”的值,而是函數(shù)名稱中符合給定的匹配模式。同時(shí),這個(gè)功能也支持指定多個(gè)模式,不同模式之間用";"(分號(hào))隔開(kāi)。

?

過(guò)濾(Filtering)

折疊功能能實(shí)現(xiàn)過(guò)濾的效果,只是被過(guò)濾的項(xiàng)的采樣時(shí)間會(huì)被累加到調(diào)用者身上。有時(shí)我們其實(shí)只想簡(jiǎn)單地去掉一些我們不關(guān)心的函數(shù),同時(shí)也不需要保留它們的采樣時(shí)間。這時(shí),我們可以采用“簡(jiǎn)單粗暴”的過(guò)濾方式。

"IncPats":可以設(shè)置一個(gè)或多個(gè)模式(多個(gè)時(shí)用分號(hào)";"隔開(kāi)),只有當(dāng)函數(shù)名稱匹配一個(gè)或者多個(gè)給定的模式時(shí),這個(gè)函數(shù)會(huì)被顯示在列表上,不匹配的會(huì)被從列表上刪除。

"ExcPats":可以設(shè)置一個(gè)或多個(gè)模式(多個(gè)時(shí)用分號(hào)";"隔開(kāi)),只有當(dāng)函數(shù)名稱匹配一個(gè)或者多個(gè)給定的模式時(shí),這個(gè)函數(shù)會(huì)從列表上刪除。

因此,"IncPats"和"ExcPats"是一對(duì)反義詞,前者是“匹配則保留”,后者是“匹配則刪除”

這里說(shuō)的模式,和上一篇文章中說(shuō)的“通配符”是一樣的,或者可以參考幫助文件,或者在界面上對(duì)于的ToolTip提示中也有說(shuō)明。

例如,以下圖例的設(shè)置中,在”IncPats“框中設(shè)置”P(pán)rocess% ConsoleApp7 (4108)“,起到只顯示我的程序”ConsoleApp7“的函數(shù)調(diào)用堆棧

時(shí)間范圍選擇

有時(shí)我們希望能只顯示某一段時(shí)間內(nèi)的函數(shù)調(diào)用情況,Perfview也提供時(shí)間范圍選擇的功能,在界面上提供了"Start"和"End"兩個(gè)輸入框。但要注意的是,這里的時(shí)間范圍不是以絕對(duì)的時(shí)間值(比如:2018/12/27 23:15:02),而是從開(kāi)始收集時(shí)經(jīng)歷的毫秒數(shù)。假設(shè)你某個(gè)時(shí)間開(kāi)始收集,5秒后停止,你想只看第3秒到第4秒的數(shù)據(jù),就可以在Start中設(shè)置"3000",在End中設(shè)置"4000",Perfview只顯示大于或等于3000毫秒小于或等于4000毫秒的函數(shù)調(diào)用數(shù)據(jù)。

不僅只提供文本框輸入值的功能,Perfview還提供一個(gè)更便利的時(shí)間范圍選擇功能,如下圖:

在”When“一列中,顯示了一串文本值,一共32個(gè),由數(shù)字字母和一些符號(hào)組成。這串由符號(hào)組成的”字符串“代表了該函數(shù)在收集過(guò)程中被采樣數(shù)(可以理解成出現(xiàn)的頻繁度),具體來(lái)說(shuō),Pferview將每一個(gè)函數(shù)的”Inclusive“時(shí)間分成32"段",每一段的不同符號(hào)代表了該函數(shù)的”Inclusive“時(shí)間的比例值:(以下內(nèi)容是從幫助文檔中COPY的,稍作翻譯)

”_“ 代表在該段"時(shí)間段"內(nèi)沒(méi)有采樣(means no samples occurred in that bucket. )
”.“代表在該段"時(shí)間段"內(nèi)有0%到0.1%的Inclusive時(shí)間?(means that interval consumed between 0% and .1%. )
”o” 代表在該段"時(shí)間段"內(nèi)有1%?到 1%的Inclusive時(shí)間(means that interval consumed between .1% and 1%. )
”0” 代表在該段"時(shí)間段"內(nèi)有1% 到10%的Inclusive時(shí)間(means that interval consumed between 1% and 10%. )
”1” 代表在該段"時(shí)間段"內(nèi)有10%?到 20%的Inclusive時(shí)間(means that interval consumed between 10% and 20% )
...?
”9 代表在該段"時(shí)間段"內(nèi)有90% 到100%的Inclusive時(shí)間(means that interval consumed between 90% and 100% )
”A” 代表在該段"時(shí)間段"內(nèi)有100% 到110%的Inclusive時(shí)間(means that interval consumed between 100% and 110% )
...?
”Z” 代表在該段"時(shí)間段"內(nèi)有350% 到360%的Inclusive時(shí)間(means that interval consumed between 350% and 360% )
”*” 代表在該段"時(shí)間段"內(nèi)有超過(guò)360%的Inclusive時(shí)間(means that interval consumed over 360%)

”a” 代表在該段"時(shí)間段"內(nèi)有0% 到-10%的Inclusive時(shí)間(means that interval consumed between 0% and -10% )
”b” 代表在該段"時(shí)間段"內(nèi)有-10% 到-20%的Inclusive時(shí)間(means that interval consumed between -10% and -20% )
...?
”z” 代表在該段"時(shí)間段"內(nèi)有-250% 到-260%的Inclusive時(shí)間(means that interval consumed between -250% and -260% )
”*” 代表在該段"時(shí)間段"內(nèi)有超過(guò) -260 %的Inclusive時(shí)間(means that interval consumed over -260 %)? 這個(gè)我不是很清楚,不是代表360%嗎??

另外,為什么會(huì)有些值是超過(guò)100%呢? 按文檔的解釋,應(yīng)該是有多個(gè)可消耗的資源單元,例如200%代表某個(gè)函數(shù)在2個(gè)CPU上都有100%的INCLUSIVE時(shí)間,但我不確定是否理解正確。

?

那怎么在“When”欄中進(jìn)行時(shí)間范圍選擇呢?

可以雙擊“When”欄的文本值,然后用鼠標(biāo)光標(biāo)選擇一段或整段文本(就像平時(shí)選擇一段文字進(jìn)行ctrl+c ctrl+v一樣),然后右擊并在右鍵菜單中選擇“Set Time Range”,如圖:

?

這樣,該時(shí)間范圍的值就會(huì)被設(shè)置到"Start"和“End”中,并進(jìn)行過(guò)濾。

?

以上便是Perfiveiw中的幾種數(shù)據(jù)過(guò)濾功能,還是那句話,這里涉及只介紹了基本的功能,更多更具體的功能說(shuō)明,可以查看幫助文檔。

原文地址:?https://www.cnblogs.com/lwhkdash/p/10146947.html

.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com


總結(jié)

以上是生活随笔為你收集整理的使用PerfView监测.NET程序性能(四):折叠,过滤和时间范围选择的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。