說一說Android Studio和IDEA中一個很有用的內存調試插件

yshu2570 7年前發布 | 54K 次閱讀 Android Studio開發工具 Android Studio

JetBrains JVM Debugger Memory View plugin

在我最近的研發活動期間尋找新的工具,以提高我的開發經驗,使Android Studio的生活更輕松,我發現一個有用的插件,我從來沒有聽說過。 這就是為什么,我決定寫這個強大的工具,它如何幫助我與內存調試我的應用程序。

What is the plugin about?

根據 plugin page :

此插件擴展了內置的JVM調試器,具有在調試會話期間觀察JVM堆中的對象的功能。

內存視圖按照類名稱分組來顯示 堆中的對象總數

當你一步步調試代碼時, “Diff”列顯示調試器停靠點(debugger stops也就是debug點)之間對象數量的變化 。 這種方式你可以很容易地看到你的步進代碼如何影響堆。

雙擊類名稱,打開一個包含該類實例的對話框。 該對話框允許您 通過計算表達式過濾實例 。 所有調試器操作(如檢查,標記對象,評估表達式,添加到觀察等)都可以應用于此對話框中的實例。

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

裝完重新啟動Android Studio。

At first glance:

回到Android Studio后,您會發現 Memory View Tool Window 已經添加到工具欄的右側。

Memory View Tool Window

內存視圖工具窗口

如果沒有看到內存視圖,打開工具窗口,使用主菜單: ViewTool WindowsMemory View

首先,這個工具只有在打了調試斷點并在 debug模式 運行期間才會顯示數據。

其次,我要提到的是,我閱讀了Android Studio可能會發生的一些警告和錯誤,不過,我并沒有碰到過。

警告:Android Studio版本包含以下限制:

  • 由于Android內存限制,獲取大量的實例可能會失敗,并會停止VM。

  • Android Studio可能會停止響應,請參閱 此錯誤

Let’s debug!

在調試模式下運行應用程序并在BreakPoint上暫停后,您會看到很神奇的畫面:

這個表讓我們最感興趣的地方是 Diff ”列,當你一步步調試代碼行時,你將看到會有多少新的對象實例被創建或銷毀!

我想尋找我自己的對象 (即ProfileModel類) ,所以我搜索它:

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

此窗口還允許你使用類方法通過計算的表達式過濾實例,例如,您可以使用 OkHttp Response 類的 isSuccessful 方法來過濾篩選在內存中加載不成功的響應:

實例過濾器功能

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

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

.

 

來自:https://muyinchen.github.io/2017/02/05/Android Studio和IDEA中一個很有用的內存調試插件/

 

 本文由用戶 yshu2570 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!