性能工具設計簡介(2)

發表于:2015-02-02來源:uml.org.cn作者:不詳點擊數: 標簽:性能工具設計
用線形圖來表示CPU占用 縱向表示CPU使用率,橫向表示時間。用顏色來區分用戶態CPU和內核態CPU。類似這樣的圖還可以用來表示無響應時間,內存占用等。

  用線形圖來表示CPU占用

  縱向表示CPU使用率,橫向表示時間。用顏色來區分用戶態CPU和內核態CPU。類似這樣的圖還可以用來表示無響應時間,內存占用等。

  另外我們也可以自動分析堆棧數據,找出一段時間內連續出現在堆棧中的函數,在線形圖上醒目標出。因為這種情況很有可能是卡住或阻塞了。如下圖紅線所占有的時間段內表示主線程堆棧中都有USER32.dll 77D18816調用,再配合PDB就知道調用的是哪個函數了。這樣可以方便的找出性能瓶頸。

  還有其它各種表現形式,我們完全可以跟據自己的需要來實現。

  性能工具本身的影響

  性能工具在監聽目標進程收集性能數據,本身就會有性能的開銷。比如增加log,注入后Hook相關函數等等。這些負面影響不可避免的,我們盡量將其影響減少。比如Log寫入文件會帶來IO開銷,我們就采用先將log寫入內存,當數據采集停止后一次性寫入文件等,并且在記錄內存開銷時減掉log所占用的內存。

  總結

  總之,開發自己的性能工具,首先要明確自己關注哪些性能點,然后在此基礎上確定所需要的數據;然后確定性能工具需要哪些功能,接著一步一步實現它就好了。最后別忘了跟據自己的需要持續改進。

原文轉自:http://www.uml.org.cn/Test/201302212.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97