IDEA内存调试插件(好用)

作者:azhegps 时间:2022-04-19 08:51:13 

IDEA内存调试插件(好用)

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 页面: 

IDEA内存调试插件(好用)

按 Install jetBrains plugin… 按钮,搜索 JVM Debugger Memory View 然后 Install 。

IDEA内存调试插件(好用)

装完重新启动Android Studio。

At first glance:

回到Android Studio后,您会发现 Memory View Tool Window 已经添加到工具栏的右侧。

IDEA内存调试插件(好用)

Memory View Tool Window

内存视图工具窗口

如果没有看到内存视图,打开工具窗口,使用主菜单: View → Tool Windows → Memory View。

首先,这个工具只有在打了调试断点并在 debug模式 运行期间才会显示数据。

其次,我要提到的是,我阅读了Android Studio可能会发生的一些警告和错误,不过,我并没有碰到过。

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

  • 由于Android内存限制,获取大量的实例可能会失败,并会停止VM。

  • Android Studio可能会停止响应,请参阅 此错误

Let's debug!

在调试模式下运行应用程序并在BreakPoint上暂停后,您会看到很神奇的画面:

IDEA内存调试插件(好用)

这个表让我们最感兴趣的地方是 Diff ”列,当你一步步调试代码行时,你将看到会有多少新的对象实例被创建或销毁!

我想寻找我自己的对象 (即ProfileModel类) ,所以我搜索它:

IDEA内存调试插件(好用)

正如你可以看到我已经在这行代码更新了ProfileModel vairable,在GC删除旧对象之前我得到差异是+1 ,也可以访问之前不可能访问到的旧的对象。 通过双击这条记录,我将在窗口中获取ProfileModel类的实例:

IDEA内存调试插件(好用)

此窗口还允许你使用类方法通过计算的表达式过滤实例,例如,您可以使用 OkHttp Response 类的 isSuccessful 方法来过滤筛选在内存中加载不成功的响应:

IDEA内存调试插件(好用)

实例过滤器功能

另一个有用的功能是跟踪新实例,您可以通过Memory View Tool窗口中的右键菜单启用:

IDEA内存调试插件(好用)

此功能可帮助您跟踪已生成类的新实例的代码!

IDEA内存调试插件(好用)

以上所述是小编给大家介绍的IDEA内存调试插件网站的支持!

来源:http://blog.csdn.net/azhegps/article/details/71195351

标签:idea,内存调试
0
投稿

猜你喜欢

  • Android实现Z轴布局效果

    2021-11-19 05:33:56
  • Java并发编程之原子性-Atomic的使用

    2023-11-09 22:34:58
  • 简单谈一谈Java中的Unsafe类

    2021-11-21 00:13:40
  • Java ThreadLocal类使用详解

    2022-08-04 05:29:34
  • 简单了解Java编程中抛出异常的方法

    2023-08-07 17:31:49
  • 解读Spring-boot的debug调试

    2022-06-09 15:04:06
  • Android开发自学笔记(二):工程文件剖析

    2021-09-08 11:12:56
  • 详解java中BigDecimal精度问题

    2021-08-17 10:24:59
  • Intellij IDEA全局替换快捷键整理

    2022-06-17 14:51:39
  • response对象的使用(实例讲解)

    2023-11-30 12:23:22
  • Java和Ceylon对象的构造和验证

    2022-04-05 04:28:37
  • Spring JPA之save方法示例详解

    2023-09-06 15:50:35
  • Android编程计算函数时间戳的相关方法总结

    2023-05-27 18:29:57
  • C#网络编程中常用特性介绍

    2021-09-03 23:07:51
  • C语言详细分析宏定义与预处理命令的应用

    2021-10-06 00:39:24
  • Android实现的数字格式化用法示例

    2023-09-30 09:03:28
  • 如何关闭 IDEA 自动更新

    2021-11-04 17:17:30
  • C#添加Windows服务 定时任务

    2021-10-07 15:12:22
  • Java多线程和并发基础面试题(问答形式)

    2022-03-29 17:39:42
  • 在Flutter中制作翻转卡片动画的完整实例代码

    2023-06-23 23:31:21
  • asp之家 软件编程 m.aspxhome.com