首页

文章

如何通过jProfile来分析是否存在内存泄漏

发布网友 发布时间:2022-04-19 14:10

我来回答

1个回答

热心网友 时间:2022-04-18 23:30

  方法/步骤
  1
  JProfiler的内存视图会话提供了内存使用情况的动态更新视图以及分配点的信息视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。本文主要介绍如何意识到内存泄漏以及查找内存泄漏的几种方法。
  2
  意识到内存泄漏
  怀疑内存泄漏的第一步就是查看 "Memory"和"Recorded objects" 遥感勘测视图。当应用程序出现内存泄漏时,视图中会显示出带有震荡的线性积极趋势。如果没有这样的线性趋势,您的应用程序可能只是消耗了大量的内存,而不是内存泄漏。处理方法很简单,找出占用大量内存的类或阵列,尽量减少类或阵列的数量。

  3
  使用差异缩小内存泄漏
  查找内存泄漏的起源的第一步就是查找对象视图和所记录的对象视图的差异。简单的内存泄漏可以利用差分功能来追查。
  观察对象视图和所记录的对象视图的差异,然后找出该差异是有哪些类引起的。然后,当切换到热点视图时,选择问题类别,然后观察问题实例所分配到的差异列。此时,知道实例创建的方法。

  4
  堆遍历器和内存泄漏
  当获取了一堆快照时,首先你必须创建一个带有对象实例的对象集。如果你在动态内存视图中已经收窄内存泄漏原因的范围,你可以使用 "show selection in heap walker"来保存操作并启动堆遍历器。

  5
  利用对象视图找出内存泄漏原因
  大多数的内存泄漏可以被追溯到对象集群。这将产生一些大的retained size的对象。最大的对象视图列出了带有最大retained size的对象。你可以利用该树形向下钻取从而发现错误引用。

  6

  使用参考图找到内存泄漏的原因
  找出内存泄漏的核心工具是堆遍历器中的参考图。依次打开传入引用,你可能会立即发现一个错误引用。在复杂的系统中,这往往是不可能的。在这种情况下,你必须要找到一个或多个"garbage collector roots"。Garbage collector roots是JVM中的点,不受垃圾回收机制的约束。当你选择了传入引用或图形中的一个对象时,顶部的[Show path to GC root] 按钮被启用。

  7

  garbage collector roots非常多,若全部显示它们,可能会造成大量堆积,如图所示。此外,查找garbage collector roots也很耗时。 如果找到成千上万的roots,计算的时间很长而且会占用大量内存。为了防止这些问题,最好开始时从单个garbage collector root 开始查找,然后根据利用 UP to roots 根据需要慢慢增加garbage collector root。
  8

  garbage collector root 的链条可以很长
  9

  使用cumulated references views以查找内存泄漏的原因
  在某些情况下,您可能无法成功地缩小对象设置的规模。你的对象集中可能仍包含了大量的实例或者在此情况下,使用参考图不可能会提供任何见解。这时,堆遍历器的引用视图中的 the cumulated reference tables 就可排上用场了。cumulated incoming reference table显示了当前对象集中所有可能的引用类型:
  从引用类型中,你就可以缩小对象集。例如,您可能知道那些引用类型是正常的,那些是不正常的。

  利用Java剖析工具JProfiler查找内存泄漏的方法
历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 如何使用 umdh.exe 来查找内存泄漏 如何使用JProfiler查找内存泄漏 android怎么查找内存泄漏 怎么排查这些内存泄漏 如何检测内存泄漏 vc6.0中如何查找内存泄露 异形2014小说txt全集免费下载 联想G410win7系统,安装WIN8虚拟机就卡在了这个界面。 摄像机拍到白色影子到底是什么还会晃动、已经是第... 东北烤串店到底是怎样的地方 羊肉串的腌制方法,东北口味的 碳烤羊肉串秘诀 为什么东北烤串那么好吃? 烤串怎么烤好吃 东北烧烤大家觉得有传说中那么好吃么? 大东北烧烤怎么样 都说东北烧烤好吃,和其他地区的有什么不同吗? 为什么东北的烧烤这么火? 东北木炭烤羊肉串怎么腌料 烧烤的手法基本要领 c++怎么查找内存泄漏 Android开发中,有什么工具能够排查jni层的内存泄漏 怎样查找内存泄漏问题? 求助:vs2003下如何查找内存泄漏 如何快速定位android app是否存在内存泄露 linux内存泄漏如何定位 如何使用 fbretaincycledetector JAVA防止内存的泄漏什么意思,内存还能泄露? 如何定位分析linux内存泄漏问题 有哪些经典的 Web 前端或者 JavaScript 面试笔试题 VS2015编写C++查找内存泄漏怎么显示出来文件名和行号 手机钉钉直播可以从屏幕共享里面听别人讲的视频吗 xs运行内存是多少 苹果xs运行内存多大 在哪里可以查看 苹果xsmax64G运行速度慢吗 甲油胶里面的彩胶怎么用 彩油胶跟甲油胶有什么不同的吗? 甲油胶和彩胶的区别 甲油胶 彩蔻甲油胶好用吗? 康淳甲油胶的美甲彩胶怎么样,上色效果好吗?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com