IDEA内存调试插件(好用)
作者:azhegps 发布时间:2022-04-19 08:51:13
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
内存视图工具窗口
如果没有看到内存视图,打开工具窗口,使用主菜单: View → Tool Windows → Memory 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窗口中的右键菜单启用:
此功能可帮助您跟踪已生成类的新实例的代码!
以上所述是小编给大家介绍的IDEA内存调试插件网站的支持!
来源:http://blog.csdn.net/azhegps/article/details/71195351


猜你喜欢
- Csv文件基本的属性csv文件可以在excel或者wps中以表格形式打开,本质上是每一列以,逗号为分隔符的一种格式,在C#中操作可以把他当做
- 本文实例讲述了Java泛型定义与用法。分享给大家供大家参考,具体如下:1. 泛型的由来先看如下代码:import java.util.Lis
- 从现在开始,大家可以跟随着我的脚步来自定义一个属于自己的Spring框架。但是,在学习自定义Spring框架之前,我们得先来回顾一下Spri
- 1.简单计算器使用AWT编程,FrameNORTH区域放置TextField组件,将指定为4行5列GridLayout布局管理器的Panel
- vs2005中总是保留最近打开的项目和文件的记录,甚至是以删除的它也不删,-_-!下面介绍几种删除的方法:第一种:建立一个bat文件,以后双
- 本文实例讲述了C#快速排序算法。分享给大家供大家参考。具体实现方法如下:public static int[] QuickSort(int[
- session简介做过Web开发的程序员应该对Session都比较熟悉,Session是一块保存在服务器端的内存空间,一般用于保存用户的会话
- 首先我们看下object源码中如何定义hashcode与equals方法的public native int hashCode();publ
- 这是一篇入门级文章,高手请略过。在这篇文章中我们将学习如何用 Java 对图像进行剪裁并将剪裁出来的部分单独保存到文件中。我们将通过以下步骤
- 目录注解是什么?元注解是什么?标准的元注解:@Target元注解:@Retention元注解:@Documented元注解:@Inherit
- 1. 读取json file1.1 Json dependency<dependency> &nbs
- 1、@Valid与@Validated的区别1.1 基本区别@Valid:Hibernate validation校验机制@Validate
- <dependency> <groupId>org.projectlombok</g
- 持久化技术简介数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或计算机关机的情况下,这些数据也不会丢失。保存在内存中的
- 本文介绍了使用C#创建Windows服务的实例代码,分享给大家一、开发环境操作系统:Windows 10 X64开发环境:VS2015编程语
- 不一致,那么用来接收查询出来的result对应的数据将会是Null,如果不使用resultMap,那么一般为了避免pojo对象对应的属性为N
- 一、在spring的应用中我们存在两种过滤的用法,一种是 * 、另外一种当然是过滤器。我们这里介绍过滤器在springboot的用法,在sp
- 实现从数据库中动态获取对应的List集合,并在Easyui的combobox中显示出来。实现的效果如下:1、数据库的表设计如图所示2、数据库
- 一、简介Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache提供
- 想要实现一个功能:同一个用户在两个不同的浏览器中登录,后面的踢掉之前的登录。本来的思路是在httpSession * 中进行判断。但是在使用