jetbrains jvm debugger memory view plugin
在我最近的研發(fā)活動(dòng)期間尋找新的工具,以提高我的開(kāi)發(fā)經(jīng)驗(yàn),使android studio的生活更輕松,我發(fā)現(xiàn)一個(gè)有用的插件,我從來(lái)沒(méi)有聽(tīng)說(shuō)過(guò)。 這就是為什么,我決定寫(xiě)這個(gè)強(qiáng)大的工具,它如何幫助我與內(nèi)存調(diào)試我的應(yīng)用程序。
what is the plugin about?
根據(jù) plugin page :
此插件擴(kuò)展了內(nèi)置的jvm調(diào)試器,具有在調(diào)試會(huì)話期間觀察jvm堆中的對(duì)象的功能。
內(nèi)存視圖按照類(lèi)名稱(chēng)分組來(lái)顯示 堆中的對(duì)象總數(shù) 。
當(dāng)你一步步調(diào)試代碼時(shí), “diff”列顯示調(diào)試器停靠點(diǎn)(debugger stops也就是debug點(diǎn))之間對(duì)象數(shù)量的變化 。 這種方式你可以很容易地看到你的步進(jìn)代碼如何影響堆。
雙擊類(lèi)名稱(chēng),打開(kāi)一個(gè)包含該類(lèi)實(shí)例的對(duì)話框。 該對(duì)話框允許您 通過(guò)計(jì)算表達(dá)式過(guò)濾實(shí)例 。 所有調(diào)試器操作(如檢查,標(biāo)記對(duì)象,評(píng)估表達(dá)式,添加到觀察等)都可以應(yīng)用于此對(duì)話框中的實(shí)例。
how to install this wonderful plugin?
打開(kāi)android studio plugins 頁(yè)面:
- 快捷鍵: 按 command/ ctrl + shift + a, 類(lèi)型 插件 隨后,按 enter 鍵:
- 或打開(kāi) preferences/settings: (mac:android studio - >preferences / windows和linux:file - >settings)并找到 plugins 頁(yè)面:
按 install jetbrains plugin… 按鈕,搜索 jvm debugger memory view 然后 install 。
裝完重新啟動(dòng)android studio。
at first glance:
回到android studio后,您會(huì)發(fā)現(xiàn) memory view tool window 已經(jīng)添加到工具欄的右側(cè)。
memory view tool window
內(nèi)存視圖工具窗口
如果沒(méi)有看到內(nèi)存視圖,打開(kāi)工具窗口,使用主菜單: view → tool windows → memory view。
首先,這個(gè)工具只有在打了調(diào)試斷點(diǎn)并在 debug模式 運(yùn)行期間才會(huì)顯示數(shù)據(jù)。
其次,我要提到的是,我閱讀了android studio可能會(huì)發(fā)生的一些警告和錯(cuò)誤,不過(guò),我并沒(méi)有碰到過(guò)。
警告:android studio版本包含以下限制:
- 由于android內(nèi)存限制,獲取大量的實(shí)例可能會(huì)失敗,并會(huì)停止vm。
- android studio可能會(huì)停止響應(yīng),請(qǐng)參閱 此錯(cuò)誤
let's debug!
在調(diào)試模式下運(yùn)行應(yīng)用程序并在breakpoint上暫停后,您會(huì)看到很神奇的畫(huà)面:
這個(gè)表讓我們最感興趣的地方是 diff ”列,當(dāng)你一步步調(diào)試代碼行時(shí),你將看到會(huì)有多少新的對(duì)象實(shí)例被創(chuàng)建或銷(xiāo)毀!
我想尋找我自己的對(duì)象 (即profilemodel類(lèi)) ,所以我搜索它:
正如你可以看到我已經(jīng)在這行代碼更新了profilemodel vairable,在gc刪除舊對(duì)象之前我得到差異是+1 ,也可以訪問(wèn)之前不可能訪問(wèn)到的舊的對(duì)象。 通過(guò)雙擊這條記錄,我將在窗口中獲取profilemodel類(lèi)的實(shí)例:
此窗口還允許你使用類(lèi)方法通過(guò)計(jì)算的表達(dá)式過(guò)濾實(shí)例,例如,您可以使用 okhttp response 類(lèi)的 issuccessful 方法來(lái)過(guò)濾篩選在內(nèi)存中加載不成功的響應(yīng):
實(shí)例過(guò)濾器功能
另一個(gè)有用的功能是跟蹤新實(shí)例,您可以通過(guò)memory view tool窗口中的右鍵菜單啟用:
此功能可幫助您跟蹤已生成類(lèi)的新實(shí)例的代碼!
以上所述是小編給大家介紹的idea內(nèi)存調(diào)試插件,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
原文鏈接:http://blog.csdn.net/azhegps/article/details/71195351