日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

dotTrace 使用說明

系統(tǒng) 4095 0

注意:在做基于VS2005 開發(fā)的網(wǎng)站分析的時(shí)候,dottrace 必須打開IIS的對(duì)應(yīng)該的網(wǎng)站,他不能打開VS2005 打開的程序

?

?

性能分析(Performance Profiling):在dotTrace中在被測(cè)試程序中當(dāng)某些特定操作持續(xù)的時(shí)間.可以

  • 定位運(yùn)行最慢的代碼(Locate the slowest-running parts in your co de)
  • 找出性能瓶頸的制約(Identify performance bottlenecks down to any particular function)
  • 觀察單個(gè)函數(shù)花費(fèi)的CPU時(shí)間(Focus on a function to see what makes it consume CPU time)
  • 理清復(fù)雜的遞歸調(diào)用(Untangle complex recursive calls)
  • 比較前后時(shí)序優(yōu)化功能(Compare function timings before and after optimization)

性能分析包括幾個(gè)分析方法,每一個(gè)都有其特定的用途。

  • 跟蹤分析 vs 抽樣分析(Tracing Profiling vs Sampling Profiling)

  • Measuring Wall Time vs Thread Time

  • 即時(shí)內(nèi)聯(lián)

內(nèi)存分析:衡量分配的內(nèi)存量和應(yīng)用程序的對(duì)象釋放。可以:

  • 獲取有關(guān)內(nèi)存使用全面統(tǒng)計(jì)
  • 查看哪些類和消費(fèi)最多的內(nèi)存空間
  • 確定舉行可達(dá)對(duì)象為某對(duì)象
  • 分析源垃圾發(fā)電

會(huì)話分析:在同一段時(shí)間內(nèi)的分析的應(yīng)用程序的不同方面。分析會(huì)話可通過dotTrace用戶界面,或命令行或API運(yùn)行

快照:是一個(gè)文件,包含由dotTrace分析期間保存的數(shù)據(jù),用視圖表示。這些數(shù)據(jù)包括等參數(shù):

  • 函數(shù)的執(zhí)行時(shí)間
  • 函數(shù)調(diào)用次數(shù)
  • 函數(shù)占總花費(fèi)時(shí)間的百分比
  • 對(duì)象包含類的個(gè)數(shù)
  • 對(duì)象分配的內(nèi)存
  • 擁有的對(duì)象個(gè)數(shù)
  • 占用的內(nèi)存?

快照視圖:是一個(gè)快照數(shù)據(jù)的可視化表示(期間收集到的分析會(huì)話),可從不同角度分析結(jié)果。 dotTrace提供了幾視圖

  • 性能分析視圖
    • 調(diào)用樹視圖:樹般的呼吁所有可執(zhí)行的功能分組分析會(huì)話期間,他們可以通過線程或所有線程分組
    • 平面視圖:查看會(huì)話期間所有方法或函數(shù)調(diào)用
    • 熱點(diǎn)視圖:查看會(huì)話期間時(shí)間花費(fèi)最多的函數(shù)和方法
    • 反向視圖:查看調(diào)用選定函數(shù)的函數(shù)

  • 內(nèi)存分析視圖
    • 類列表:內(nèi)存分析的的默認(rèn)視圖,準(zhǔn)確統(tǒng)計(jì)對(duì)象的數(shù)量和程序中各個(gè)類分配的內(nèi)存量
    • 命名空間樹:按命名空間分組對(duì)象
    • 外引用:顯示引用外部對(duì)象的對(duì)象引用
    • 內(nèi)引用:顯示對(duì)該對(duì)象的引用
    • 分配樹:以樹結(jié)構(gòu)顯示分配到該對(duì)象的函數(shù)。

過濾:顯示或隱藏特定函數(shù)。請(qǐng)參閱創(chuàng)建和應(yīng)用過濾器。

打開獨(dú)立的標(biāo)簽窗口:對(duì)于CPU快照,可以為一個(gè)函數(shù)打開一個(gè)新的標(biāo)簽窗口來顯示函數(shù)花費(fèi)CPU的時(shí)間率;對(duì)于內(nèi)存快照,可以分析內(nèi)存查看引用,查看靜態(tài)數(shù)據(jù)等。Opening in a New Tab

為CPU快照,另開一個(gè)新標(biāo)簽上顯示的功能是指一個(gè)函數(shù),作為一個(gè)消耗100%的資源根源的CPU一定比例的信息。

內(nèi)存快照,揭開了新標(biāo)簽組對(duì)象使您可以分析內(nèi)存:鑒于參考,研究統(tǒng)計(jì)等

見打開在新標(biāo)簽。

折疊

dotTrace因此可以折疊遞歸調(diào)用,過濾來電。

折疊遞歸調(diào)用幫助用戶有效地分析遞歸算法的性能。見折疊遞歸調(diào)用。

折疊式過濾要求,確定可以在代碼的部分,感興趣的用戶的性能瓶頸。見折疊濾波呼吁。

垃圾收集器

垃圾回收器回收的企圖是不會(huì)被應(yīng)用程序使用的對(duì)象使用的內(nèi)存。見顯示垃圾信息。

舉行可達(dá)的對(duì)象

一個(gè)對(duì)象是持有另一個(gè)對(duì)象,如果它仍然未引用時(shí),引用對(duì)象被刪除。舉行內(nèi)存是由持有對(duì)象分配的內(nèi)存量。

可到達(dá)的對(duì)象是從另一個(gè)對(duì)象,如果存在一些應(yīng)用程序中的名稱,導(dǎo)致它,直接或通過其他到達(dá)對(duì)象的引用。

見查看舉行可達(dá)的對(duì)象。

種對(duì)象

活動(dòng)對(duì)象:對(duì)象,在得到一個(gè)內(nèi)存快照的時(shí)刻存在。

新的對(duì)象:對(duì)象不存在時(shí),內(nèi)存的標(biāo)志,而是由獲得快照那一刻出現(xiàn)。

死對(duì)象:對(duì)象時(shí)存在內(nèi)存的標(biāo)志,而是由獲得快照那一刻死亡。

垃圾:對(duì)象的分配和內(nèi)存之間的標(biāo)識(shí)和獲取快照垃圾收集器收集。

最后確定的對(duì)象:對(duì)象的定稿(處置終結(jié))(見最后審定并最終確定對(duì)象)。

見差異獲取內(nèi)存國(guó)模式,在內(nèi)存中篩選國(guó)家和查看最終確定對(duì)象的差異。

最后審定并最終確定對(duì)象

解釋確定物體的概念,讓我們定義定稿。當(dāng)從根不強(qiáng)引用仍然是一個(gè)對(duì)象,并在垃圾收集器收集它,該對(duì)象可最后定稿。在。NET,對(duì)象只有在完成覆蓋Object.Finalize()方法。

注意:在C#中有沒有辦法覆蓋Object.Finalize()方法。相反,它可以創(chuàng)建一個(gè)析構(gòu)函數(shù)。在編譯時(shí),編譯器創(chuàng)建一個(gè)方法,載有析構(gòu)函數(shù),它調(diào)用的Finalize()基類的方法,然后執(zhí)行析構(gòu)函數(shù)的代碼。

然而,使用析構(gòu)函數(shù)的缺點(diǎn)是,他們是在一個(gè)不確定的時(shí)間要求。因此,它不是一個(gè)析構(gòu)函數(shù),而是Dispose()方法,通常用于為那些不再需要免費(fèi)資源。在Dispose()方法被調(diào)用,你應(yīng)該當(dāng)你不再需要的對(duì)象。如果你忘記調(diào)用它時(shí),該方法將調(diào)用相應(yīng)的Finalize()方法。然而,這是一個(gè)不好的做法留給到終結(jié),因?yàn)樵谛阅茌^低,效益低的應(yīng)用程序的內(nèi)存使用此結(jié)果。

為了解決這一問題,dotTrace可以檢測(cè)到定稿對(duì)象。對(duì)于其中的一些,你會(huì)發(fā)現(xiàn),他們沒有明確處理在您的代碼。

?

?

從VS2005開始,就自帶了一個(gè)不錯(cuò)的性能分析工具Performance Profiler。但是在使用的過程中,經(jīng)常有程序崩潰的情況出現(xiàn),特別是在分析IIS的 web程序時(shí)。在微軟的論壇上,也看到很多外國(guó)的朋友報(bào)過這樣的錯(cuò)誤。所以就使用了第三方的工具dotTrace。

?? ? ?市面上有很多性能的Profiler工具,AQ Time,ANTS Profiler,Speed Trace Profiler.但是分析的原理跟方法論基本都是一致的。以分析IIS的web程序?yàn)槔赿otTrace中啟動(dòng)Profiler,它會(huì)重新啟動(dòng)IIS,Attach到進(jìn)程中(IIS5為aspnet_wp.exe),然后運(yùn)行需要分析的程序,Get Snapshot,然后我們就可以得到一個(gè)分析的結(jié)果。關(guān)鍵的問題是,我們?nèi)绾卫媒Y(jié)果迅速的找到性能瓶頸。

?? ? ?1.Hot Spots視圖。這個(gè)視圖根據(jù)耗時(shí)從大到小排序了所有的方法。我們可以馬上發(fā)現(xiàn)耗時(shí)最長(zhǎng)的方法。總共有兩種情況:

?? ? ? ? ? ?1.1該方法被調(diào)用次數(shù)非常少,但是非常耗時(shí)。這時(shí)馬上得出結(jié)論,該方法就是性能瓶頸。記錄下來,分析代碼。

?? ? ? ? ? ?1.2該方法被調(diào)用次數(shù)很多。此時(shí)就需要使用另一個(gè)視圖:Back Trees

?? ? ?2.Back Trees視圖。這個(gè)視圖通常是用來分析一個(gè)被調(diào)用很多次的函數(shù)的Callee,因?yàn)橐话銇碚f,一個(gè)函數(shù)被調(diào)用多次,一般是在某一個(gè)Callee中有一個(gè)循環(huán)或者遞歸 ,而性能調(diào)優(yōu)的入口是這個(gè)Callee函數(shù),而不是被調(diào)用者本身。(其實(shí)Hot Spots本身也是Back Tree,只是我們可以單獨(dú)把一個(gè)函數(shù)在一個(gè)Tab頁(yè)中開打,然后使用Back Tree單獨(dú)分析)

?? ? ?3.Plain List視圖。有時(shí)候,我們會(huì)發(fā)現(xiàn),在Hot Spots里會(huì)出現(xiàn)很多系統(tǒng)函數(shù),比方Linq的操作,這時(shí)如果函數(shù)太多,也許對(duì)定位不方便。這時(shí)可以使用 Plan List 視圖,它只顯示過濾以后的函數(shù),然后根據(jù)Own Time進(jìn)行排序,找出耗時(shí)最長(zhǎng)的函數(shù)。但是,如果一個(gè)耗時(shí)的函數(shù)都沒發(fā)現(xiàn),就很有可能是由于資源的操作導(dǎo)致性能下降,比如循環(huán)調(diào)用Linq操作,或者發(fā)送郵件一直等待等原因。

?? ? ?4.Call Tree視圖。在dotTrace中,Call Tree中的每一個(gè)函數(shù)的子函數(shù)并 不是按照調(diào)用順序來排列的,而是根據(jù)耗時(shí)百分比來排列的。 (如果要查看函數(shù)的子函數(shù)執(zhí)行順序,在Plain List中查看)。這樣的話我們可以快速的定位到下一個(gè)Important Call,并且dotTrace還提供了快捷鍵ctrl+shift+->(右箭頭)。但是Call Tree視圖對(duì)于分析有個(gè)不好的地方,就是某個(gè)函數(shù)也許會(huì)在不同的分支被循環(huán)調(diào)用,這時(shí)使用Call Tree是非常難發(fā)現(xiàn)的,這也是Back Tree存在的意義。

?? ? ?另外,dotTrace4.0還有遠(yuǎn)程調(diào)試的功能,這對(duì)于調(diào)試集成環(huán)境應(yīng)該是很有用的。?

?? ? ?補(bǔ):我看到CSDN有朋友說,dotTace跟蹤Windows From的程序發(fā)現(xiàn)子函數(shù)加起來的時(shí)間跟遠(yuǎn)小于父函數(shù)的時(shí)間,那是因?yàn)閐otTrace的過濾功能, 只要點(diǎn)擊百分?jǐn)?shù)前面的小圖標(biāo)“unfold filtered calls”,就能把所有過濾掉的函數(shù)顯示出來。實(shí)際上,該朋友碰到的情況是,dotTrace過濾掉了Application.Run()函數(shù)調(diào)用的消息循環(huán)函數(shù)RunMessageLoop。

dotTrace 使用說明


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 云龙县| 鸡东县| 雅安市| 卓尼县| 小金县| 都匀市| 嘉义市| 新晃| 龙井市| 永定县| 海南省| 广饶县| 溧水县| 顺昌县| 普陀区| 保德县| 化州市| 大田县| 元氏县| 雷州市| 云林县| 嘉祥县| 昌江| 华容县| 寿宁县| 始兴县| 清水县| 牙克石市| 株洲市| 通州区| 长乐市| 五莲县| 敦化市| 永和县| 镇坪县| 江门市| 新绛县| 芦山县| 泰兴市| 南郑县| 贡嘎县|