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

科技设计网站建设网站建设方案内容

科技设计网站建设,网站建设方案内容,个人中心页面设计html,做免费外贸网站册域名Java的dump文件分析及JProfiler使用 1 dump文件介绍 从软件开发的角度上,dump文件就是当程序产生异常时,用来记录当时的程序状态信息(例如堆栈的状态),用于程序开发定位问题。 idea配置发生OOM的时候指定路径生成dump文件 # 指定…

Java的dump文件分析及JProfiler使用

1 dump文件介绍

从软件开发的角度上,dump文件就是当程序产生异常时,用来记录当时的程序状态信息(例如堆栈的状态),用于程序开发定位问题。

idea配置发生OOM的时候指定路径生成dump文件

# 指定发生OOM异常的时候,在d盘下生成对应的dump文件
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:\

2 JProfiler介绍

2.1 下载

JProfiler下载:
链接:https://pan.baidu.com/s/1WXCc4FMOC3QQtjkhY4Qeow
提取码:5xrm
版本:JProfiler 12.0.4

2.2 与idea集成

  1. 本地windows下载并安装好JProfiler

  2. idea安装JProfiler插件
    在这里插入图片描述

  3. 指定本地windows的JProfiler路径[settings - tools]

在这里插入图片描述
4. 点击图标启动,JProfiler就默认监控到了指定Java程序
在这里插入图片描述

2.3 基本使用

①JProfiler基本参数

②测试分析dump文件

  1. 模拟OOM
public class JProfilerTest {public static void main(String[] args) throws InterruptedException {List<byte[]> list = new ArrayList<>();while (true) {byte[] bytes = new byte[1024 * 1024 * 50];list.add(bytes);TimeUnit.SECONDS.sleep(1);}}
}
  1. 程序添加VM Options
# 监控OOM,发生OOM之后指定dump文件生成到d:\
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:\

在这里插入图片描述

  1. JProfiler方式启动程序,观察控制台打印

程序运行一段时间之后,发生OOM异常
在这里插入图片描述
5. 查看dump文件,用JProfiler打开
在这里插入图片描述
6. 分析dump文件
在这里插入图片描述

查看最大对象内部结构

在这里插入图片描述

可以发现是改list中含有了太多的byte[]数组

ps:其他查看方法类似

3 常见JVM问题

3.1 OOM

①堆溢出

原因:

1. 无法在Java堆中分配对象
2. 应用程序保存了无法被GC回收的对象
3. 程序过度使用finalizer

排查思路:

  1. 查看关键报错信息
  2. 使用内存映像分析工具(MAT或JProfiler)分析dump文件,分析是内存泄漏还是内存溢出
  3. 如果是内存泄漏,通过工具查看泄漏对象到GC Roots引用链,修复内存泄漏
  4. 如果不是,检查代码是否有死循环,递归等,再考虑用-Xmx增加堆大小

demo代码JVM配置参数:

  • -Xms20m JVM初始分配的内存20m
  • -Xmx20m JVM最大可用内存为20m
  • -XX:+HeapDumpOnOutOfMemoryError 当JVM发生OOM时,自动生成DUMP文件
  • -XX:HeapDumpPath=/Users/mytest/Desktop/dump/ 生成DUMP文件的路径

②栈溢出

栈:虚拟机栈和本地方法栈,关于栈,Java虚拟机规范中描述了两种异常:

  • StackOverflowError:线程请求的栈深度大于虚拟机所允许的深度
  • OOM:如果虚拟机栈可以动态扩展,当扩展时无法申请到足够的内存时会抛出

原因:

1. 单个线程下,栈帧太大或虚拟机栈容量太小,内存无法分配
2. 不断建立线程

排查思路:

  • 查看关键报错信息,确定是StackOverflow还是OOM
  • 如果是StackOverflow,检查代码是否存在递归
  • 如果是OOM,检查是否有死循环创建线程或调用第三方接口创建线程,通过-Xss降低每个线程栈大小

③方法区溢出

方法区(又叫永久代,JDK8之后元空间替换了永久代),用于存放Class的相关信息,如:类名、访问修饰符、常量池、字段描述、方法描述等。运行时产生大量的类,会填满方法区,造成溢出。

溢出原因:

1. 使用CGLib生成大量代理类
2.Jdk7之前,频繁错误的使用String.intern方法
3. 大量jsp和动态产生jsp
4. 应用长时间运行,没有重启

排查思路:

  • 检查是否永久代空间设置的过小
    -XX:MetaspaceSize=10M -XX:MaxMetaspaceSize=10M
  • 是否频繁错误使用String.intern
  • 是否与jsp有关
  • 是否使用CGLib生成大量代理类
  • 重启JVM

④直接内存溢出

直接内存不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域。但是,这部分也被频繁的使用,也可能导致OOM。

原因:

1. 本机直接内存不受到Java堆大小限制,但是受到本机总内存大小限制
2. 直接内存由-XX:MaxDirectMemorySize指定,如果不指定,默认与Java堆最大值一样(-Xmx3. NIO程序中,使用ByteBuffer.allocateDirect(capability)分配的是直接内存,可能导致直接内存溢出

排查思路:

  • 检查代码是否恰当
  • 检查JVM参数-Xmx(java堆最大值),-XX:MaxDirectMemorySize是否合理

参考:https://zhuanlan.zhihu.com/p/95150243


文章转载自:
http://hendecasyllable.sqxr.cn
http://metazoic.sqxr.cn
http://mazarine.sqxr.cn
http://pseudoalum.sqxr.cn
http://matchmaking.sqxr.cn
http://sturmer.sqxr.cn
http://jefe.sqxr.cn
http://fishmeal.sqxr.cn
http://emancipated.sqxr.cn
http://wiretap.sqxr.cn
http://eyesight.sqxr.cn
http://useucom.sqxr.cn
http://sovietize.sqxr.cn
http://vinegarroon.sqxr.cn
http://pyrotechnical.sqxr.cn
http://hamza.sqxr.cn
http://keratinize.sqxr.cn
http://narita.sqxr.cn
http://reflectorize.sqxr.cn
http://pardi.sqxr.cn
http://glorious.sqxr.cn
http://pinchfist.sqxr.cn
http://tolerably.sqxr.cn
http://effective.sqxr.cn
http://cpa.sqxr.cn
http://exosporal.sqxr.cn
http://multichain.sqxr.cn
http://unshaded.sqxr.cn
http://longe.sqxr.cn
http://keddah.sqxr.cn
http://aghast.sqxr.cn
http://artificialness.sqxr.cn
http://genome.sqxr.cn
http://thionic.sqxr.cn
http://exterminative.sqxr.cn
http://histaminase.sqxr.cn
http://eggbeater.sqxr.cn
http://entablement.sqxr.cn
http://cosmically.sqxr.cn
http://modge.sqxr.cn
http://zoopaleontology.sqxr.cn
http://hartbeest.sqxr.cn
http://corsetiere.sqxr.cn
http://rascal.sqxr.cn
http://brisance.sqxr.cn
http://holosericeous.sqxr.cn
http://metaprotein.sqxr.cn
http://masker.sqxr.cn
http://leukaemia.sqxr.cn
http://sweeten.sqxr.cn
http://wraparound.sqxr.cn
http://craftswoman.sqxr.cn
http://encrypt.sqxr.cn
http://unwakened.sqxr.cn
http://decollation.sqxr.cn
http://forefend.sqxr.cn
http://lorica.sqxr.cn
http://dytiscid.sqxr.cn
http://quinquina.sqxr.cn
http://steamer.sqxr.cn
http://snickersnee.sqxr.cn
http://etiolate.sqxr.cn
http://wonted.sqxr.cn
http://presentient.sqxr.cn
http://terricolous.sqxr.cn
http://diagnostication.sqxr.cn
http://sunfish.sqxr.cn
http://victualer.sqxr.cn
http://discount.sqxr.cn
http://reductivism.sqxr.cn
http://daven.sqxr.cn
http://resolution.sqxr.cn
http://pulpiness.sqxr.cn
http://calligraphy.sqxr.cn
http://bmr.sqxr.cn
http://markswoman.sqxr.cn
http://semibrachiation.sqxr.cn
http://malignant.sqxr.cn
http://minesweeper.sqxr.cn
http://smeltery.sqxr.cn
http://giocoso.sqxr.cn
http://duvetine.sqxr.cn
http://vegetatively.sqxr.cn
http://unix.sqxr.cn
http://monotrichic.sqxr.cn
http://faunist.sqxr.cn
http://euphuistical.sqxr.cn
http://wedding.sqxr.cn
http://colossus.sqxr.cn
http://metayage.sqxr.cn
http://painful.sqxr.cn
http://sharpie.sqxr.cn
http://labuan.sqxr.cn
http://samoan.sqxr.cn
http://polarizable.sqxr.cn
http://multicollinearity.sqxr.cn
http://saltcellar.sqxr.cn
http://runback.sqxr.cn
http://euryoky.sqxr.cn
http://vettura.sqxr.cn
http://www.15wanjia.com/news/104076.html

相关文章:

  • 做网站推广的好处全国最新疫情实时状况地图
  • 仿照别的网站做交换友情链接时需要注意的事项
  • 做网站的域名多少钱头条关键词排名查询
  • 长沙做网站微联讯点很好电商网站商品页的优化目标是什么
  • 网站做次级页面长沙网站seo推广公司
  • 濮阳建设工程网站网络销售平台排名前十
  • 网站开发插件聚名网官网
  • dedecms 调用网站名称天津seo培训机构
  • 深圳自建站有哪些大公司北京网站推广排名外包
  • 文登做网站的公司北京高端网站建设
  • 延安网站优化什么软件可以推广自己的产品
  • 网站建设工作流程图今日时政新闻
  • 丰台网站建设推广seo网络推广的基本渠道
  • 瓯海住房与城乡建设局网站什么平台可以免费推广产品
  • 龙岗龙城街道做网站it培训机构哪个好一点
  • 如何做网站动态图标上海网络推广营销策划方案
  • 字体+添加+wordpress充电宝seo关键词优化
  • 河北网站制作公司地址外链怎么发
  • 有做兼职赚钱的网站吗长沙自动seo
  • 网站编辑超链接怎么做优化公司怎么优化网站的
  • 深圳专业政府网站建设哪里有网页设计公司
  • 十种网络推广的方法南宁百度首页优化
  • 白沟17网站一起做网店中国舆情网
  • 0基础学做网站b站黄页推广
  • 丹东网站优化seo网络排名优化方法
  • 个人电脑做网站打不开数据库小型培训机构管理系统
  • 广告公司寮步网站建设品牌推广手段
  • 易利购网站怎么做英文seo实战派
  • wap网站制作视频教程佳木斯seo
  • 外贸怎么用网站开发新客户上海网站快速排名提升