栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

学习使用Jprofiler(内存/遥感检测)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习使用Jprofiler(内存/遥感检测)

  • profile a demo session or a saved session 选择一个保存的session
  • Attach to a running JVM 选择一个正在运行的JVM
  • Profile an application server,locally or remotely 连接本地或者远程的应用
  • Open a snapshot 打开一个快照
Jprofiler的两种采集方式
  1. Instrumentation(重构模式):在加载class之前,JProfier把相关代码写入到需要分析的class的bytecode中,对正在运行的jvm有一定影响
    - 优点:调用堆栈的信息是准确的
    - 去点:如果分析的class较多,则对应的性能影响较大,此模式最好需要跟Filter使用,只对特定的类或包进行分析

  2. Sampling:类似于样本统计,每隔一段时间(5ms)将每个线程中方法栈中的信息统计出来
    - 优点:对cpu开销非常小
    - 缺点:一些数据/特性不能提供(方法的调用次数/执行时间)

如果是对正在运行的java程序进行采集,最好使用Sampling进行分析

使用方式 1.遥感监测

2. 内存视图

选择是对类的分析还是对包的总体分析==(如果class很多,建议使用package进行分析)==

选择中文描述详细信息
Recorded Objects记录对象查看特定时间段对象的分配,并记录分配的调用堆栈
Allocation Call Tree分配树访问显示一棵树请求或者方法,类,包或对已选择类有带注释的分配信息的J2EE组件
Allocation Hot Spot分配热点显示一个列表,包括方法,类,包或分配已选择类的J2EE组件。你可以标注当前值并且显示于每个热点都可以显示他的跟踪记录数
Class Tracker类追踪器类跟踪视图可以包含任意数量的图表,显示选定的类和包的实例与时间
  1. 对象分析:
  • 频繁创建java对象:死循环,循环次数过多
  • 存在大的对象:读取文件时,byte[]应该边写边读。—>如果长时间不写出,会导致byte[]过大
  • 内存泄漏

如果内存出现一下的情况,也就是在GC的时候,内存还是处于上升的状态的时候就需要去查看内存泄漏

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/307101.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号