亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

dotTrace 使用說明

系統 3936 0

注意:在做基于VS2005 開發的網站分析的時候,dottrace 必須打開IIS的對應該的網站,他不能打開VS2005 打開的程序

?

?

性能分析(Performance Profiling):在dotTrace中在被測試程序中當某些特定操作持續的時間.可以

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

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

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

  • Measuring Wall Time vs Thread Time

  • 即時內聯

內存分析:衡量分配的內存量和應用程序的對象釋放。可以:

  • 獲取有關內存使用全面統計
  • 查看哪些類和消費最多的內存空間
  • 確定舉行可達對象為某對象
  • 分析源垃圾發電

會話分析:在同一段時間內的分析的應用程序的不同方面。分析會話可通過dotTrace用戶界面,或命令行或API運行

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

  • 函數的執行時間
  • 函數調用次數
  • 函數占總花費時間的百分比
  • 對象包含類的個數
  • 對象分配的內存
  • 擁有的對象個數
  • 占用的內存?

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

  • 性能分析視圖
    • 調用樹視圖:樹般的呼吁所有可執行的功能分組分析會話期間,他們可以通過線程或所有線程分組
    • 平面視圖:查看會話期間所有方法或函數調用
    • 熱點視圖:查看會話期間時間花費最多的函數和方法
    • 反向視圖:查看調用選定函數的函數

  • 內存分析視圖
    • 類列表:內存分析的的默認視圖,準確統計對象的數量和程序中各個類分配的內存量
    • 命名空間樹:按命名空間分組對象
    • 外引用:顯示引用外部對象的對象引用
    • 內引用:顯示對該對象的引用
    • 分配樹:以樹結構顯示分配到該對象的函數。

過濾:顯示或隱藏特定函數。請參閱創建和應用過濾器。

打開獨立的標簽窗口:對于CPU快照,可以為一個函數打開一個新的標簽窗口來顯示函數花費CPU的時間率;對于內存快照,可以分析內存查看引用,查看靜態數據等。Opening in a New Tab

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

內存快照,揭開了新標簽組對象使您可以分析內存:鑒于參考,研究統計等

見打開在新標簽。

折疊

dotTrace因此可以折疊遞歸調用,過濾來電。

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

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

垃圾收集器

垃圾回收器回收的企圖是不會被應用程序使用的對象使用的內存。見顯示垃圾信息。

舉行可達的對象

一個對象是持有另一個對象,如果它仍然未引用時,引用對象被刪除。舉行內存是由持有對象分配的內存量。

可到達的對象是從另一個對象,如果存在一些應用程序中的名稱,導致它,直接或通過其他到達對象的引用。

見查看舉行可達的對象。

種對象

活動對象:對象,在得到一個內存快照的時刻存在。

新的對象:對象不存在時,內存的標志,而是由獲得快照那一刻出現。

死對象:對象時存在內存的標志,而是由獲得快照那一刻死亡。

垃圾:對象的分配和內存之間的標識和獲取快照垃圾收集器收集。

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

見差異獲取內存國模式,在內存中篩選國家和查看最終確定對象的差異。

最后審定并最終確定對象

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

注意:在C#中有沒有辦法覆蓋Object.Finalize()方法。相反,它可以創建一個析構函數。在編譯時,編譯器創建一個方法,載有析構函數,它調用的Finalize()基類的方法,然后執行析構函數的代碼。

然而,使用析構函數的缺點是,他們是在一個不確定的時間要求。因此,它不是一個析構函數,而是Dispose()方法,通常用于為那些不再需要免費資源。在Dispose()方法被調用,你應該當你不再需要的對象。如果你忘記調用它時,該方法將調用相應的Finalize()方法。然而,這是一個不好的做法留給到終結,因為在性能較低,效益低的應用程序的內存使用此結果。

為了解決這一問題,dotTrace可以檢測到定稿對象。對于其中的一些,你會發現,他們沒有明確處理在您的代碼。

?

?

從VS2005開始,就自帶了一個不錯的性能分析工具Performance Profiler。但是在使用的過程中,經常有程序崩潰的情況出現,特別是在分析IIS的 web程序時。在微軟的論壇上,也看到很多外國的朋友報過這樣的錯誤。所以就使用了第三方的工具dotTrace。

?? ? ?市面上有很多性能的Profiler工具,AQ Time,ANTS Profiler,Speed Trace Profiler.但是分析的原理跟方法論基本都是一致的。以分析IIS的web程序為例,在dotTrace中啟動Profiler,它會重新啟動IIS,Attach到進程中(IIS5為aspnet_wp.exe),然后運行需要分析的程序,Get Snapshot,然后我們就可以得到一個分析的結果。關鍵的問題是,我們如何利用結果迅速的找到性能瓶頸。

?? ? ?1.Hot Spots視圖。這個視圖根據耗時從大到小排序了所有的方法。我們可以馬上發現耗時最長的方法。總共有兩種情況:

?? ? ? ? ? ?1.1該方法被調用次數非常少,但是非常耗時。這時馬上得出結論,該方法就是性能瓶頸。記錄下來,分析代碼。

?? ? ? ? ? ?1.2該方法被調用次數很多。此時就需要使用另一個視圖:Back Trees

?? ? ?2.Back Trees視圖。這個視圖通常是用來分析一個被調用很多次的函數的Callee,因為一般來說,一個函數被調用多次,一般是在某一個Callee中有一個循環或者遞歸 ,而性能調優的入口是這個Callee函數,而不是被調用者本身。(其實Hot Spots本身也是Back Tree,只是我們可以單獨把一個函數在一個Tab頁中開打,然后使用Back Tree單獨分析)

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

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

?? ? ?另外,dotTrace4.0還有遠程調試的功能,這對于調試集成環境應該是很有用的。?

?? ? ?補:我看到CSDN有朋友說,dotTace跟蹤Windows From的程序發現子函數加起來的時間跟遠小于父函數的時間,那是因為dotTrace的過濾功能, 只要點擊百分數前面的小圖標“unfold filtered calls”,就能把所有過濾掉的函數顯示出來。實際上,該朋友碰到的情況是,dotTrace過濾掉了Application.Run()函數調用的消息循環函數RunMessageLoop。

dotTrace 使用說明


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 两个人高清视频图片中文字幕 | 九九九九九九伊人 | 天天干天天干天天插 | 99久久99久久精品国产 | 国产美女福利视频 | 四虎最新紧急更新地址 | 我要看免费的毛片 | 国产大尺度福利视频在线观看 | 国产精品亚洲一区二区三区久久 | 中文字幕不卡在线观看 | 久草在线在线视频 | 欧美在线观看高清一二三区 | 九九视频九九热 | 久久91精品久久久久久水蜜桃 | 欧美交换乱理伦片在线观看 | 国产一区二区三区日韩欧美 | a视频在线看| 久久网综合 | 蘑菇视频绿巨人小黄鸭 | 精品色| 日韩一级a毛片欧美一级 | 曰本一区二区三区 | 国产不卡精品一区二区三区 | 四虎午夜剧场 | 一级网站在线观看 | 久热精品视频在线观看 | 四虎地址8848 | 成年超爽大片免费视频播放 | 久久青青草视频 | 久久高清| 四虎成年永久免费网站 | 久久久久夜色精品波多野结衣 | 欧美人成毛片在线播放 | 国产成人亚洲精品91专区高清 | 精品久久久一二三区 | 欧美肥老太婆交 | 天天干天天操天天爽 | 天天爱夜夜爽 | 成人乱色短篇合集 | 毛片女人毛片一级毛片毛片 | 奇米777第四 |