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堆中的對(duì)象的功能。
內(nèi)存視圖按照類名稱分組來顯示 堆中的對(duì)象總數(shù) 。
當(dāng)你一步步調(diào)試代碼時(shí), “Diff”列顯示調(diào)試器??奎c(diǎn)(debugger stops也就是debug點(diǎn))之間對(duì)象數(shù)量的變化 。 這種方式你可以很容易地看到你的步進(jìn)代碼如何影響堆。
雙擊類名稱,打開一個(gè)包含該類實(shí)例的對(duì)話框。 該對(duì)話框允許您 通過計(jì)算表達(dá)式過濾實(shí)例 。 所有調(diào)試器操作(如檢查,標(biāo)記對(duì)象,評(píng)估表達(dá)式,添加到觀察等)都可以應(yīng)用于此對(duì)話框中的實(shí)例。
How to install this wonderful plugin?
打開Android Studio Plugins 頁(yè)面:
- 快捷鍵: 按 command/ ctrl + shift + A, 類型 插件 隨后,按 enter 鍵:
- 或打開 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)存視圖工具窗口
如果沒有看到內(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),請(qǐng)參閱 此錯(cuò)誤
Let's debug!
在調(diào)試模式下運(yùn)行應(yīng)用程序并在BreakPoint上暫停后,您會(huì)看到很神奇的畫面:

這個(gè)表讓我們最感興趣的地方是 Diff ”列,當(dāng)你一步步調(diào)試代碼行時(shí),你將看到會(huì)有多少新的對(duì)象實(shí)例被創(chuàng)建或銷毀!
我想尋找我自己的對(duì)象 (即ProfileModel類) ,所以我搜索它:

正如你可以看到我已經(jīng)在這行代碼更新了ProfileModel vairable,在GC刪除舊對(duì)象之前我得到差異是+1 ,也可以訪問之前不可能訪問到的舊的對(duì)象。 通過雙擊這條記錄,我將在窗口中獲取ProfileModel類的實(shí)例:

此窗口還允許你使用類方法通過計(jì)算的表達(dá)式過濾實(shí)例,例如,您可以使用 OkHttp Response 類的 isSuccessful 方法來過濾篩選在內(nèi)存中加載不成功的響應(yīng):

實(shí)例過濾器功能
另一個(gè)有用的功能是跟蹤新實(shí)例,您可以通過Memory View Tool窗口中的右鍵菜單啟用:

此功能可幫助您跟蹤已生成類的新實(shí)例的代碼!

以上所述是小編給大家介紹的IDEA內(nèi)存調(diào)試插件,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringBoot管理RabbitMQ中的Channel詳解
這篇文章主要介紹了SpringBoot管理RabbitMQ中的Channel詳解,channel僅存在于connection的上下文中,而不會(huì)單獨(dú)存在,當(dāng)channel關(guān)閉時(shí),其上的所有channel也會(huì)關(guān)閉,需要的朋友可以參考下2023-08-08
java操作solr實(shí)現(xiàn)查詢功能的實(shí)例
下面小編就為大家分享一篇java操作solr實(shí)現(xiàn)查詢功能的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-11-11
java結(jié)合WebSphere MQ實(shí)現(xiàn)接收隊(duì)列文件功能
WebSphereMQ,也稱MQSeries,以一致的、可靠的和易于管理的方式來連接應(yīng)用程序,并為跨部門、企業(yè)范圍的集成提供了可靠的基礎(chǔ)。通過為重要的消息和事務(wù)提供可靠的、一次且僅一次的傳遞,MQ可以處理復(fù)雜的通信協(xié)議,并動(dòng)態(tài)地將消息傳遞工作負(fù)載分配給可用的資源。2015-10-10
Java實(shí)現(xiàn)動(dòng)態(tài)生成GIF圖像詳解
在互聯(lián)網(wǎng)上有許多有趣的場(chǎng)景,其中的一種就是動(dòng)圖。這不是視頻,而是一種GIF圖像信息。本文將利用Java實(shí)現(xiàn)動(dòng)態(tài)生成GIF圖像功能,需要的可以參考一下2022-09-09
SSM框架下如何實(shí)現(xiàn)數(shù)據(jù)從后臺(tái)傳輸?shù)角芭_(tái)
這篇文章主要介紹了SSM框架下如何實(shí)現(xiàn)數(shù)據(jù)從后臺(tái)傳輸?shù)角芭_(tái),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
java中springMVC獲取請(qǐng)求參數(shù)的方法
這篇文章主要介紹了java中springMVC獲取請(qǐng)求參數(shù)的方法,springmvc是spring框架的一個(gè)模塊,springmvc和spring無(wú)需通過中間整合層進(jìn)行整合,需要的朋友可以參考下2023-05-05
如何在Netty中注解使用Service或者M(jìn)apper
這篇文章主要介紹了如何在Netty中注解使用Service或者M(jìn)apper,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
SpringBoot集成ElasticSearch實(shí)現(xiàn)minio文件內(nèi)容全文檢索
這篇文章詳細(xì)介紹了如何在Spring?Boot項(xiàng)目中集成Elasticsearch和Kibana,包括Docker安裝、中文分詞器安裝、后端代碼實(shí)現(xiàn)以及前端查詢組件封裝,需要的朋友可以參考下2024-11-11

