資料介紹
今天給大家介紹一款騰訊自主研發(fā),榮獲2015年十佳組件的“tMemoryMonitor”內(nèi)存泄漏分析工具。該騰訊內(nèi)部工具已經(jīng)在騰訊WeTest官網(wǎng)內(nèi)開放給用戶使用,助您在工作中掃除內(nèi)存泄露問題,讓工作精益求精。
鏈接:wetest.qq.com

工具使用入口
【工具簡介】
tMemoryMonitor簡稱TMM,是一款運(yùn)行時(shí)C/C++內(nèi)存泄漏檢測工具。TMM認(rèn)為在進(jìn)程退出時(shí),內(nèi)存中沒有被釋放且沒有指針指向的無助內(nèi)存塊即為內(nèi)存泄漏,并進(jìn)而引入垃圾回收機(jī)制,在進(jìn)程退出時(shí)檢測出堆內(nèi)存中所有沒有被引用的內(nèi)存單元,因而內(nèi)存泄漏檢測準(zhǔn)確率為100%。TMM下載地址:http://wetest.qq.com/cloud/index.php/index/TMM
【開發(fā)目的】
防泄漏測試一直是編程測試中非常重要的一個(gè)模塊,盡管目前市面上已有一些Windows平臺下的內(nèi)存泄漏動態(tài)檢測工具,比如UMDH,VLD,Purify,BoundsCheck等,但其中Purify和BoundsCheck是昂貴的商用軟件,UMDH需要人工獲取內(nèi)存快照,操作門檻較高,VLD則需要修改源程序的代碼,同時(shí)這幾款工具都存在誤報(bào)情況,因此準(zhǔn)確性不高。而我們的tMemMonitor就是一款針對Windows平臺專業(yè)、準(zhǔn)確、易用的內(nèi)存泄漏分析工具。
目前正使用TMM的騰訊團(tuán)隊(duì)
【算法原理】
Windows 中有多種級別的內(nèi)存分配函數(shù),其中,最底層的是ntdll.dll 提供的Rtl 系列函數(shù),在這之上的有Windows API 提供的heap 管理函數(shù),再上層,C/C++庫提供了malloc/free 函數(shù)和new/delete 操作符,因此替換如此層級復(fù)雜的函數(shù)比較困難,同時(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權(quán)限的情況下啟動TMM,然后在列表區(qū)添加XX音樂這款軟件,就已經(jīng)成功在TMM中加載了這款程序。
1.我們在XX音樂中隨意選擇一首歌進(jìn)行播放
2.播放結(jié)束后正常退出XX音樂,這時(shí)TMM就會彈出一個(gè)名為“data”文件夾,里面包括著在播放音樂期間的數(shù)據(jù)泄漏詳情
3.點(diǎn)開文檔后就能詳細(xì)查看文件泄漏的具體報(bào)告
鏈接:wetest.qq.com

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