| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
yshu2570
7年前发布

说一说Android Studio和IDEA中一个很有用的内存调试插件

   <p style="text-align: center;"><img src="https://simg.open-open.com/show/c526b465214d3aca976298c832da30f5.png"></p>    <p>JetBrains JVM Debugger Memory View plugin</p>    <p>在我最近的研发活动期间寻找新的工具,以提高我的开发经验,使Android Studio的生活更轻松,我发现一个有用的插件,我从来没有听说过。 这就是为什么,我决定写这个强大的工具,它如何帮助我与内存调试我的应用程序。</p>    <h3>What is the plugin about?</h3>    <p>根据 <a href="/misc/goto?guid=4959736015774182219" rel="nofollow,noindex">plugin page</a> :</p>    <p>此插件扩展了内置的JVM调试器,具有在调试会话期间观察JVM堆中的对象的功能。</p>    <p>内存视图按照类名称分组来显示 <strong>堆中的对象总数</strong> 。</p>    <p>当你一步步调试代码时, “Diff”列显示调试器停靠点(debugger stops也就是debug点)之间对象数量的变化 。 这种方式你可以很容易地看到你的步进代码如何影响堆。</p>    <p>双击类名称,打开一个包含该类实例的对话框。 该对话框允许您 <strong>通过计算表达式过滤实例</strong> 。 所有调试器操作(如检查,标记对象,评估表达式,添加到观察等)都可以应用于此对话框中的实例。</p>    <h3>How to install this wonderful plugin?</h3>    <p>打开Android Studio <strong>Plugins</strong> 页面:</p>    <ul>     <li><strong>快捷键:</strong> 按 <strong>command/ ctrl</strong> + <strong>shift</strong> + <strong>A,</strong> 类型 <strong>插件</strong> 随后,按 <strong>enter</strong> 键:</li>     <li>或打开 <strong>Preferences/Settings:</strong> (Mac:Android Studio - >Preferences <strong>/</strong> Windows和Linux:File - >Settings)并找到 <strong>Plugins</strong> 页面:</li>    </ul>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/bb33a53494ba34dd5eaab67eb406219d.png"></p>    <p>按 <strong>Install jetBrains plugin…</strong> 按钮,搜索 <strong>JVM Debugger Memory View</strong> 然后 <strong>Install</strong> 。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/6b67c41a155b9d9e6a332f7aa37b774f.png"></p>    <p>装完重新启动Android Studio。</p>    <p>At first glance:</p>    <p>回到Android Studio后,您会发现 <strong>Memory View Tool Window</strong> 已经添加到工具栏的右侧。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/e6d762eda767784d356c41f88ea2ea9a.png"></p>    <p>Memory View Tool Window</p>    <p>内存视图工具窗口</p>    <p>如果没有看到内存视图,打开工具窗口,使用主菜单: <em>View</em> → <em>Tool Windows</em> → <em>Memory View</em> 。</p>    <p>首先,这个工具只有在打了调试断点并在 <em>debug模式</em> 运行期间才会显示数据。</p>    <p>其次,我要提到的是,我阅读了Android Studio可能会发生的一些警告和错误,不过,我并没有碰到过。</p>    <p>警告:Android Studio版本包含以下限制:</p>    <ul>     <li> <p>由于Android内存限制,获取大量的实例可能会失败,并会停止VM。</p> </li>     <li> <p>Android Studio可能会停止响应,请参阅 <a href="https://code.google.com/p/android/issues/detail?id=198940&q=subcomponent%3DTools-debugger%20label%3ASubcomponent-Tools-debugger&colspec= ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened" rel="nofollow,noindex">此错误</a></p> </li>    </ul>    <h3>Let’s debug!</h3>    <p>在调试模式下运行应用程序并在BreakPoint上暂停后,您会看到很神奇的画面:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/4db23ce05c9a475ef0b12024b3d4d888.png"></p>    <p>这个表让我们最感兴趣的地方是 <strong>Diff</strong> ”列,当你一步步调试代码行时,你将看到会有多少新的对象实例被创建或销毁!</p>    <p>我想寻找我自己的对象 <em>(即ProfileModel类)</em> ,所以我搜索它:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/dfcc3d79a70a0dd9176fc001b43c2043.png"></p>    <p>正如你可以看到我已经在这行代码更新了ProfileModel vairable,在GC删除旧对象之前我得到差异是+1 ,也可以访问之前不可能访问到的旧的对象。 通过双击这条记录,我将在窗口中获取ProfileModel类的实例:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/24979900f4ed9cf338dc01da45bcba26.png"></p>    <p>此窗口还允许你使用类方法通过计算的表达式过滤实例,例如,您可以使用 <strong>OkHttp Response</strong> 类的 <strong>isSuccessful</strong> 方法来过滤筛选在内存中加载不成功的响应:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/d366810d164616309832a78727294588.png"></p>    <p>实例过滤器功能</p>    <p>另一个有用的功能是跟踪新实例,您可以通过Memory View Tool窗口中的右键菜单启用:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/a516bf67a107081b76c883a88dc89ae4.png"></p>    <p>此功能可帮助您跟踪已生成类的新实例的代码!</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/7d874677baf083c4c03818d9d9708974.png"></p>    <p>.</p>    <p> </p>    <p>来自:https://muyinchen.github.io/2017/02/05/Android Studio和IDEA中一个很有用的内存调试插件/</p>    <p> </p>    
 本文由用户 yshu2570 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1486356249092.html
Android Studio开发工具 Android Studio