当前位置: 首页 > news >正文

杭州中小企业网站建设深圳石岩做网站的公司

杭州中小企业网站建设,深圳石岩做网站的公司,公司做网站的价格,vps推荐关于作者#xff1a;CSDN内容合伙人、技术专家#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 #xff0c;擅长java后端、移动开发、人工智能等#xff0c;希望大家多多支持。 目录 一、导读二、概览三、 使用3.1 hprof 文件准备3.1.1 Android sutdi… 关于作者CSDN内容合伙人、技术专家 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 擅长java后端、移动开发、人工智能等希望大家多多支持。 目录 一、导读二、概览三、 使用3.1 hprof 文件准备3.1.1 Android sutdio Memory Profiler3.1.2 adb shell3.1.3 通过代码 3.2视图右键菜单功能3.2.1 List objects3.2.2 Show objects by class3.2.3 Path To GC Roots3.2.4 Merge Shortest Pahts to GC Roots3.2.5 Java Basics3.2.6 Java Collections3.2.7 Leak Identification3.2.8 Show Retained Set3.2.9 Copy3.2.10 Search Queries ...3.2.11 Calculate Minimum Retained Size(quick approx.)3.2.12 Calculate Precise Retained Size3.2.13 Columns...3.2.14 Immidiate Dominators 3.3 文件分析3.3.1 OQL3.3.2 Histogram直方图3.3.3 Dominator Tree(支配树)3.3.4 Top Consumers3.3.4 Leak Suspects3.3.5 Unreachable objects Histogram 四、 推荐阅读 一、导读 我们继续总结学习基础知识温故知新。 二、概览 MAT是Memory Analyzer tool的缩写是一款非常强大的内存分析工具只需要打开采集的hprof文件即可开始对内存开始分析对比一款“傻瓜式“的堆转储文件分析工具谁都能学会。 下载地址 三、 使用 3.1 hprof 文件准备 3.1.1 Android sutdio Memory Profiler 具体参考另一篇博文 Memory Profiler Memory Profiler 是 Android Profiler 中的一个组件可帮助您识别可能会导致应用卡顿、冻结甚至崩溃的内存泄露和内存抖动。 它显示一个应用内存使用量的实时图表让您可以捕获堆转储、强制执行垃圾回收以及跟踪内存分配。 Memory Profiler我们主要用于识别内存泄漏、抖动 提供捕获堆转储、强制GC、跟踪内存分配 通过Memory Profiler 保存的堆转储文件需要进行一次转换才能在MAT中打开。 hprof-conv heap-original.hprof heap-converted.hprofhprof-conv是 android sdk 工具目录\Sdk\platform-tools 3.1.2 adb shell adb shell am dumpheap [options] process file具体选项包括--user [user_id | current]提供进程名称时指定要转储的进程的用户。如果未指定则使用当前用户。 -n转储原生堆而非托管堆。官网 3.1.3 通过代码 使用快手的koom 开源库dump hprof文件这是一个线上内存监控方案 KOOM 当然还有其他方式大家可自行尝试。 3.2视图右键菜单功能 3.2.1 List objects 将所有的对象都展示出来 with incoming references 表示的是当前查看的对象被外部应用即所有引用该对象的对象就是被哪个类引用with outGoing references 表示的是当前对象引用了外部对象即该对象引用的其他对象 我引用了哪些类。 3.2.2 Show objects by class Show objects by class会将它们统一归类 by outgoing references查看这个对象类型持有的外部对象引用by incoming references查看这个对象类型被哪些外部对象引用 3.2.3 Path To GC Roots 过滤出该 对象 至 GC Roots 的一条最短引用链路。 常用来分析内存泄漏。 3.2.4 Merge Shortest Pahts to GC Roots 过滤出一条 GC Roots 到 该对象 的一条最短引用链。 with all referencesexclude weak referencesexclude soft referencesexclude phantom referencesexclude weak/soft references查看这个对象的GC Root不含弱引用和软引用所有的引用.exclude phantom/soft referencesexclude phantom/weak referencesexclude all phantom/weak/soft etc. references 查看这个对象的GC Root不包含虚、弱引用、软引用剩下的就是强引用。从GC上说除了强引用外其他的引用在JVM需要的情况下是都可以 被GC掉的如果一个对象始终无法被GC就是因为强引用的存在从而导致在GC的过程中一直得不到回收因此就内存溢出了。exclude custom field… 3.2.5 Java Basics ReferencesClass Loader Explorer 查看class loader相关的特性Customized Retained SetFind StringsGroup By ValueOpen In Dominator TreeShow As HistogramThread Details 展示该实例所在的线程一些属性内容Thread Overview and Stacks 3.2.6 Java Collections Array Fill RatioArrays Grouped By SizeCollection Fill RatioCollection Grouped By SizeHash EntriesMap Collision RatioPrimitive Arrays With a Constant Value 3.2.7 Leak Identification Component ReportTop Consumers 3.2.8 Show Retained Set 显示对象在Dominator Tree中的子节点集合 3.2.9 Copy 复制 3.2.10 Search Queries … 3.2.11 Calculate Minimum Retained Size(quick approx.) 3.2.12 Calculate Precise Retained Size 3.2.13 Columns… 3.2.14 Immidiate Dominators 找出对象在Dominator Tree中的父节点 3.3 文件分析 当我们获取到HPROF文件后之间选择打开即可打开后会呈现以下界面 小技巧 Shallow Size和Retained size 默认是以byte为单位的若要显示地让单位展示出来可以这样设置 window - preferences - memory analyzer - smart 3.3.1 OQL 查询工具常常用于定位内存泄漏 语法结构 SELECT * FROM [ INSTANCEOF ] class namename [ WHERE filter-expression ] /filter-expression/classeg:select * from instanceof android.app.ActivityOBJECTS 通过对象查询 后面可以是对象也可以是地址 SELECT * FROM OBJECTS xyz当然也可以进行复杂的查询 — 官网OQL语法 3.3.2 Histogram直方图 展示所有分配类实例个数以及占用内存的大小 常用于查看是否泄漏及否有异常分配。 列出内存中的对象对象的个数以及大小, Histogram是站在类的角度上去看展示的是每个class对象的个数大小等 Objects对象实例的个数。Regex 筛选过滤可以进行模糊匹配例如输入activityClasse Name类名。Shallow Heap对象自身占用的内存大小不包括它引用的对象。如果是数组类型的对象它的大小是数组元素的类型和数组长度决定。如果是非数组类型的对象它的大小由其成员变量的数量和类型决定。Retained Heap一个对象的Retained Set所包含对象所占内存的总大小。换句话说Retained Heap就是当前对象被GC后从Heap上总共能释放掉的内存。 3.3.3 Dominator Tree(支配树) 展示出每个实例对象的内存大小及在总内存中的占比以及其详细引用。 Dominator tree是站在对象(实例)的角度上去看可以更方便的看出其引用关系。 Regex 筛选过滤可以进行模糊匹配例如输入activityClasse Name类名。Shallow Heap对象自身占用的内存大小不包括它引用的对象。如果是数组类型的对象它的大小是数组元素的类型和数组长度决定。如果是非数组类型的对象它的大小由其成员变量的数量和类型决定。Retained Heap一个对象的Retained Set所包含对象所占内存的总大小。换句话说Retained Heap就是当前对象被GC后从Heap上总共能释放掉的内存。Percentage内存占比 会展示出每个实例对象的 Shallow Head 与 Retained Head 以及 Retained Head在总内存中的占比该页面方便我们观察各个对象在内存中大小与占比以及其详细引用评估该对象占用大小是否在合理范围内 这个视图的右边大区域可以看到对象的依赖关系选中某个对象以后可以在左边小窗口查看对象的一些属性。如果属性的值是一些内存地址你还可以点击工具栏的搜索按钮来搜索具体的对象信息。在进行具体分析的时候MAT只是起了帮助你进行分析的工具的功能OOM问题分析没有固定方法和准则。只能发挥你敏锐的洞察力结合源代码对内存中的对象进行分析从而找到代码中的BUG. 3.3.4 Top Consumers 以图形的形式展示内存根据类名和包名列出开销最大的对象 3.3.4 Leak Suspects 3.3.5 Unreachable objects Histogram 可被回收的对象但是仍然在内存中 四、 推荐阅读 Java 专栏 SQL 专栏 数据结构与算法 Android学习专栏
http://www.hkea.cn/news/14269590/

相关文章:

  • 网站建设分金手指专业二五上海 政务网站建设情况
  • 漳州最具口碑的网站建设wordpress您访问的网页出错
  • 网站优化模板农八师建设兵团社保网站
  • 专业的网站建设科技公司修改wordpress中附件上传大小
  • dedecms游戏门户网站源码网站后期增加产品
  • 提升型企业网络营销网站建一个网站得多少钱
  • 永州市住房和城乡建设局网站潍坊搜索引擎优化
  • 重庆官方网站查询系统wordpress 菜单 宽度
  • 兰州网站建设价格企业服务类型有哪些
  • 杭州做网站外包公司有哪些企业网站优化的方案
  • 网站建设款计入什么科目简约wordpress免费主题
  • 公司网站建设服务费计入什么科目阿里云安装两个wordpress
  • 章丘网站定制什么是市场营销什么是网络营销
  • 上海网站制作科技公司安徽津城建设工程有限公司网站
  • h5做的分销网站wap网站微信一键登录
  • 健康网站建设与管理网站悬浮
  • 哪些公司可以建设网站自己在线制作logo免费版
  • 广西住房和城乡建设厅网站证件东莞网站推广教程
  • 屏蔽ip网站吗上海松江水处理网站建设
  • 中国建设银行网站查询平面设计公司名字大全
  • 外贸询盘网站网站开发需求评估
  • 以域名做网站关键词哈尔滨市做淘宝的网站
  • 邯郸做小程序的网络公司网站建设优化公司排名
  • 做商城网站合作合同软件工程就业岗位
  • 发卡网站建设海城市网站建设
  • 枞阳做网站用html做卖珠宝的网站
  • 品牌高端网站制作机构wordpress签到
  • ps做网站效果图尺寸如何专做火影黄图的网站
  • 门户网站建设教程花钱推广的网络平台
  • 建站公司排名 中企动力绵阳网站建设企业