資料介紹
今天給大家介紹一款騰訊自主研發(fā),榮獲2015年十佳組件的“tMemoryMonitor”內(nèi)存泄漏分析工具。該騰訊內(nèi)部工具已經(jīng)在騰訊WeTest官網(wǎng)內(nèi)開放給用戶使用,助您在工作中掃除內(nèi)存泄露問題,讓工作精益求精。
鏈接:wetest.qq.com
工具使用入口
【工具簡介】
tMemoryMonitor簡稱TMM,是一款運行時C/C++內(nèi)存泄漏檢測工具。TMM認為在進程退出時,內(nèi)存中沒有被釋放且沒有指針指向的無助內(nèi)存塊即為內(nèi)存泄漏,并進而引入垃圾回收機制,在進程退出時檢測出堆內(nèi)存中所有沒有被引用的內(nèi)存單元,因而內(nèi)存泄漏檢測準確率為100%。TMM下載地址:http://wetest.qq.com/cloud/index.php/index/TMM
【開發(fā)目的】
防泄漏測試一直是編程測試中非常重要的一個模塊,盡管目前市面上已有一些Windows平臺下的內(nèi)存泄漏動態(tài)檢測工具,比如UMDH,VLD,Purify,BoundsCheck等,但其中Purify和BoundsCheck是昂貴的商用軟件,UMDH需要人工獲取內(nèi)存快照,操作門檻較高,VLD則需要修改源程序的代碼,同時這幾款工具都存在誤報情況,因此準確性不高。而我們的tMemMonitor就是一款針對Windows平臺專業(yè)、準確、易用的內(nèi)存泄漏分析工具。
目前正使用TMM的騰訊團隊
【算法原理】
Windows 中有多種級別的內(nèi)存分配函數(shù),其中,最底層的是ntdll.dll 提供的Rtl 系列函數(shù),在這之上的有Windows API 提供的heap 管理函數(shù),再上層,C/C++庫提供了malloc/free 函數(shù)和new/delete 操作符,因此替換如此層級復雜的函數(shù)比較困難,同時如果替換現(xiàn)有的堆分配函數(shù),則無法做到和原有函數(shù)的執(zhí)行效果完全一致,所以替換原生的堆分配函數(shù)對于Windows 系統(tǒng)來說幾乎是不可行的,那么只能wrap(包裹)這些堆分配函數(shù)。
Linux 下的內(nèi)存檢測工具,比如Valgrind 就采用了包裹堆分配函數(shù)的方法,但它包裹的方法是不透明的,在調(diào)用棧中會多出額外一幀。TMM 則采用全透明的包裹函數(shù),將掛鉤函數(shù)分為前后二部分(如圖1 所示)。在函數(shù)調(diào)用前執(zhí)行
per-hook 函數(shù),在函數(shù)返回前調(diào)用執(zhí)行post-hook 函數(shù)。有了前后掛鉤函數(shù),TMM就可以在堆分配/釋放函數(shù)執(zhí)行前獲得參數(shù),并修改分配大小之類的參數(shù);在函數(shù)執(zhí)行后,記錄分配的大小和地址、調(diào)用棧之類的信息。
【案例介紹】
下面我們通過測試市面上一款我們常用的音樂軟件,來看看這款軟件能給我們帶來怎樣的收益。
在擁有Administrator權限的情況下啟動TMM,然后在列表區(qū)添加XX音樂這款軟件,就已經(jīng)成功在TMM中加載了這款程序。
1.我們在XX音樂中隨意選擇一首歌進行播放
2.播放結束后正常退出XX音樂,這時TMM就會彈出一個名為“data”文件夾,里面包括著在播放音樂期間的數(shù)據(jù)泄漏詳情
3.點開文檔后就能詳細查看文件泄漏的具體報告
鏈接:wetest.qq.com
工具使用入口
【工具簡介】
tMemoryMonitor簡稱TMM,是一款運行時C/C++內(nèi)存泄漏檢測工具。TMM認為在進程退出時,內(nèi)存中沒有被釋放且沒有指針指向的無助內(nèi)存塊即為內(nèi)存泄漏,并進而引入垃圾回收機制,在進程退出時檢測出堆內(nèi)存中所有沒有被引用的內(nèi)存單元,因而內(nèi)存泄漏檢測準確率為100%。TMM下載地址:http://wetest.qq.com/cloud/index.php/index/TMM
【開發(fā)目的】
防泄漏測試一直是編程測試中非常重要的一個模塊,盡管目前市面上已有一些Windows平臺下的內(nèi)存泄漏動態(tài)檢測工具,比如UMDH,VLD,Purify,BoundsCheck等,但其中Purify和BoundsCheck是昂貴的商用軟件,UMDH需要人工獲取內(nèi)存快照,操作門檻較高,VLD則需要修改源程序的代碼,同時這幾款工具都存在誤報情況,因此準確性不高。而我們的tMemMonitor就是一款針對Windows平臺專業(yè)、準確、易用的內(nèi)存泄漏分析工具。
目前正使用TMM的騰訊團隊
【算法原理】
Windows 中有多種級別的內(nèi)存分配函數(shù),其中,最底層的是ntdll.dll 提供的Rtl 系列函數(shù),在這之上的有Windows API 提供的heap 管理函數(shù),再上層,C/C++庫提供了malloc/free 函數(shù)和new/delete 操作符,因此替換如此層級復雜的函數(shù)比較困難,同時如果替換現(xiàn)有的堆分配函數(shù),則無法做到和原有函數(shù)的執(zhí)行效果完全一致,所以替換原生的堆分配函數(shù)對于Windows 系統(tǒng)來說幾乎是不可行的,那么只能wrap(包裹)這些堆分配函數(shù)。
Linux 下的內(nèi)存檢測工具,比如Valgrind 就采用了包裹堆分配函數(shù)的方法,但它包裹的方法是不透明的,在調(diào)用棧中會多出額外一幀。TMM 則采用全透明的包裹函數(shù),將掛鉤函數(shù)分為前后二部分(如圖1 所示)。在函數(shù)調(diào)用前執(zhí)行
per-hook 函數(shù),在函數(shù)返回前調(diào)用執(zhí)行post-hook 函數(shù)。有了前后掛鉤函數(shù),TMM就可以在堆分配/釋放函數(shù)執(zhí)行前獲得參數(shù),并修改分配大小之類的參數(shù);在函數(shù)執(zhí)行后,記錄分配的大小和地址、調(diào)用棧之類的信息。
【案例介紹】
下面我們通過測試市面上一款我們常用的音樂軟件,來看看這款軟件能給我們帶來怎樣的收益。
在擁有Administrator權限的情況下啟動TMM,然后在列表區(qū)添加XX音樂這款軟件,就已經(jīng)成功在TMM中加載了這款程序。
1.我們在XX音樂中隨意選擇一首歌進行播放
2.播放結束后正常退出XX音樂,這時TMM就會彈出一個名為“data”文件夾,里面包括著在播放音樂期間的數(shù)據(jù)泄漏詳情
3.點開文檔后就能詳細查看文件泄漏的具體報告
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 5G AAU 功放控制和監(jiān)測模塊簡析
- 基于機器學習的內(nèi)存泄漏測試腳本預測方法 29次下載
- 簡析獲取單片機代碼運行時間的方法資料下載
- 簡析光耦電路中為何有串聯(lián)與并聯(lián)電阻資料下載
- 簡析三極管開關電路設計資料下載
- 簡析比較器的原理及應用資料下載
- 簡析555電壓檢測電路資料下載
- 簡析運放并聯(lián)的可行性資料下載
- 簡析晶振振蕩電路的設計資料下載
- 簡析用電阻設定增益的單端至差分轉換器資料下載
- 嵌入式裝置內(nèi)存泄漏檢測系統(tǒng)設計 3次下載
- 基于混合執(zhí)行測試的靜態(tài)內(nèi)存泄漏警報的自動化確認方法 0次下載
- C++內(nèi)存泄漏分析方法 5次下載
- 鼠標HID例程(中)簡析 0次下載
- 基于ATM理念的UTRAN傳輸架構簡析
- 堆棧和內(nèi)存的基本知識 191次閱讀
- Air780E/Air780EP/Air780EQ/Air201模塊遇到內(nèi)存死機如何分析 269次閱讀
- Windows下編譯工具CMake的安裝和最簡使用 5948次閱讀
- 用于分析可執(zhí)行程序和內(nèi)存轉儲的命令行工具介紹 998次閱讀
- 記一次Rust內(nèi)存泄漏排查之旅 590次閱讀
- valgrind檢測內(nèi)存問題的原理 1864次閱讀
- 基于智能狀態(tài)和源代碼插樁的C程序內(nèi)存安全性動態(tài)分析 1311次閱讀
- 使用valgrind的callgrind工具進行多線程性能分析 2854次閱讀
- C語言使用中指針和內(nèi)存泄漏的問題和解決方案 4102次閱讀
- Android內(nèi)存管理機制與分析工具 4446次閱讀
- 閃存分析:意外內(nèi)存泄漏問題 1263次閱讀
- 內(nèi)存的內(nèi)部運轉和工作的分析 6204次閱讀
- 解析Web內(nèi)存分析與內(nèi)存泄漏定位 2380次閱讀
- C語言內(nèi)存泄漏的兩種類型 1875次閱讀
- 簡狀電爐內(nèi)部恒溫控制電路 3310次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 93次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多