IDEA內(nèi)存調(diào)試插件(好用)
JetBrains JVM Debugger Memory View plugin
在我最近的研發(fā)活動(dòng)期間尋找新的工具,以提高我的開發(fā)經(jīng)驗(yàn),使Android Studio的生活更輕松,我發(fā)現(xiàn)一個(gè)有用的插件,我從來沒有聽說過。 這就是為什么,我決定寫這個(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堆中的對象的功能。
內(nèi)存視圖按照類名稱分組來顯示 堆中的對象總數(shù) 。
當(dāng)你一步步調(diào)試代碼時(shí), “Diff”列顯示調(diào)試器??奎c(diǎn)(debugger stops也就是debug點(diǎn))之間對象數(shù)量的變化 。 這種方式你可以很容易地看到你的步進(jìn)代碼如何影響堆。
雙擊類名稱,打開一個(gè)包含該類實(shí)例的對話框。 該對話框允許您 通過計(jì)算表達(dá)式過濾實(shí)例 。 所有調(diào)試器操作(如檢查,標(biāo)記對象,評估表達(dá)式,添加到觀察等)都可以應(yīng)用于此對話框中的實(shí)例。
How to install this wonderful plugin?
打開Android Studio Plugins 頁面:
- 快捷鍵: 按 command/ ctrl + shift + A, 類型 插件 隨后,按 enter 鍵:
- 或打開 Preferences/Settings: (Mac:Android Studio - >Preferences / Windows和Linux:File - >Settings)并找到 Plugins 頁面:
按 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)存視圖工具窗口
如果沒有看到內(nèi)存視圖,打開工具窗口,使用主菜單: View → Tool Windows → Memory View。
首先,這個(gè)工具只有在打了調(diào)試斷點(diǎn)并在 debug模式 運(yùn)行期間才會(huì)顯示數(shù)據(jù)。
其次,我要提到的是,我閱讀了Android Studio可能會(huì)發(fā)生的一些警告和錯(cuò)誤,不過,我并沒有碰到過。
警告:Android Studio版本包含以下限制:
- 由于Android內(nèi)存限制,獲取大量的實(shí)例可能會(huì)失敗,并會(huì)停止VM。
- Android Studio可能會(huì)停止響應(yīng),請參閱 此錯(cuò)誤
Let's debug!
在調(diào)試模式下運(yùn)行應(yīng)用程序并在BreakPoint上暫停后,您會(huì)看到很神奇的畫面:
這個(gè)表讓我們最感興趣的地方是 Diff ”列,當(dāng)你一步步調(diào)試代碼行時(shí),你將看到會(huì)有多少新的對象實(shí)例被創(chuàng)建或銷毀!
我想尋找我自己的對象 (即ProfileModel類) ,所以我搜索它:
正如你可以看到我已經(jīng)在這行代碼更新了ProfileModel vairable,在GC刪除舊對象之前我得到差異是+1 ,也可以訪問之前不可能訪問到的舊的對象。 通過雙擊這條記錄,我將在窗口中獲取ProfileModel類的實(shí)例:
此窗口還允許你使用類方法通過計(jì)算的表達(dá)式過濾實(shí)例,例如,您可以使用 OkHttp Response 類的 isSuccessful 方法來過濾篩選在內(nèi)存中加載不成功的響應(yīng):
實(shí)例過濾器功能
另一個(gè)有用的功能是跟蹤新實(shí)例,您可以通過Memory View Tool窗口中的右鍵菜單啟用:
此功能可幫助您跟蹤已生成類的新實(shí)例的代碼!
以上所述是小編給大家介紹的IDEA內(nèi)存調(diào)試插件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
使用SpringBoot+AOP實(shí)現(xiàn)可插拔式日志的示例代碼
這篇文章主要介紹了使用SpringBoot+AOP實(shí)現(xiàn)可插拔式日志的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Java Chassis3注冊中心分區(qū)隔離技術(shù)解密
這篇文章主要為大家介紹了Java Chassis3注冊中心分區(qū)隔離技術(shù)解密,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Spring Boot2.0整合ES5實(shí)現(xiàn)文章內(nèi)容搜索實(shí)戰(zhàn)
這篇文章主要介紹了Spring Boot2.0整合ES5實(shí)現(xiàn)文章內(nèi)容搜索實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01詳解在Spring Boot框架下使用WebSocket實(shí)現(xiàn)消息推送
這篇文章主要介紹了詳解在Spring Boot框架下使用WebSocket實(shí)現(xiàn)消息推送,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12Java使用Arrays.asList報(bào)UnsupportedOperationException的解決
這篇文章主要介紹了Java使用Arrays.asList報(bào)UnsupportedOperationException的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04SpringCloud之Config配置中心與Redis分布式鎖詳解
這篇文章主要給大家介紹了SpringCloud Alibaba中Config配置中心,Redis分布式鎖,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考閱讀2023-05-05使用IDEA直接連接MySQL數(shù)據(jù)庫的方法
這篇文章主要介紹了如何使用IDEA直接連接MySQL數(shù)據(jù)庫,首先需要新建一個(gè)空項(xiàng)目,第一次連接 需要先下載驅(qū)動(dòng),文中給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-04-04