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

江苏伟业建设集团网站德州百度推广公司

江苏伟业建设集团网站,德州百度推广公司,意识形态 网站建设存在的问题,烟台专业做网站公司Java的dump文件分析及JProfiler使用 1 dump文件介绍 从软件开发的角度上#xff0c;dump文件就是当程序产生异常时#xff0c;用来记录当时的程序状态信息#xff08;例如堆栈的状态#xff09;,用于程序开发定位问题。 idea配置发生OOM的时候指定路径生成dump文件 # 指定…Java的dump文件分析及JProfiler使用 1 dump文件介绍 从软件开发的角度上dump文件就是当程序产生异常时用来记录当时的程序状态信息例如堆栈的状态,用于程序开发定位问题。 idea配置发生OOM的时候指定路径生成dump文件 # 指定发生OOM异常的时候在d盘下生成对应的dump文件 -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathd:\2 JProfiler介绍 2.1 下载 JProfiler下载 链接https://pan.baidu.com/s/1WXCc4FMOC3QQtjkhY4Qeow 提取码5xrm 版本JProfiler 12.0.4 2.2 与idea集成 本地windows下载并安装好JProfiler idea安装JProfiler插件 指定本地windows的JProfiler路径[settings - tools] 4. 点击图标启动JProfiler就默认监控到了指定Java程序 2.3 基本使用 ①JProfiler基本参数 ②测试分析dump文件 模拟OOM public class JProfilerTest {public static void main(String[] args) throws InterruptedException {Listbyte[] list new ArrayList();while (true) {byte[] bytes new byte[1024 * 1024 * 50];list.add(bytes);TimeUnit.SECONDS.sleep(1);}} }程序添加VM Options # 监控OOM发生OOM之后指定dump文件生成到d:\ -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathd:\JProfiler方式启动程序观察控制台打印 程序运行一段时间之后发生OOM异常 5. 查看dump文件用JProfiler打开 6. 分析dump文件 查看最大对象内部结构 可以发现是改list中含有了太多的byte[]数组 ps:其他查看方法类似 3 常见JVM问题 3.1 OOM ①堆溢出 原因 1. 无法在Java堆中分配对象 2. 应用程序保存了无法被GC回收的对象 3. 程序过度使用finalizer排查思路 查看关键报错信息使用内存映像分析工具MAT或JProfiler分析dump文件分析是内存泄漏还是内存溢出如果是内存泄漏通过工具查看泄漏对象到GC Roots引用链修复内存泄漏如果不是检查代码是否有死循环递归等再考虑用-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:MetaspaceSize10M -XX:MaxMetaspaceSize10M 是否频繁错误使用String.intern是否与jsp有关是否使用CGLib生成大量代理类重启JVM ④直接内存溢出 直接内存不是虚拟机运行时数据区的一部分也不是Java虚拟机规范中定义的内存区域。但是这部分也被频繁的使用也可能导致OOM。 原因: 1. 本机直接内存不受到Java堆大小限制但是受到本机总内存大小限制 2. 直接内存由-XX:MaxDirectMemorySize指定如果不指定默认与Java堆最大值一样-Xmx 3. NIO程序中使用ByteBuffer.allocateDirect(capability)分配的是直接内存可能导致直接内存溢出排查思路 检查代码是否恰当检查JVM参数-Xmx(java堆最大值)-XX:MaxDirectMemorySize是否合理 参考https://zhuanlan.zhihu.com/p/95150243
http://www.dnsts.com.cn/news/114943.html

相关文章:

  • 怎么做彩票平台网站吗宣传片拍摄要求
  • flickr wordpress网站seo站长工具
  • 网站建设服务公司哪家好郑州展厅设计公司
  • 吉林公司网站建设手机服务器下载安装
  • 湖州站内优化seo公司中国建设银行龙网站首页
  • 昆明网站建设要多少钱app网站模板下载不了
  • 广州教育网站建设网站推广排名怎么做
  • 设计类网站策划书哪个公司的卡网络最好
  • 怎么做自己的网站卖东西个人养老金交15年领多少
  • 泉州制作网站软件织梦后台 data移除后 网站无法打开
  • c2c网站的主要功能自动生成logo的软件
  • 简历表格 个人简历手机版绵阳做网站优化
  • 深圳网站建设报价表电商模式有哪几种
  • 怎么增加网站流量福州网站公司
  • 深圳网站制作公司信息怎么给钓鱼网站做防红
  • 牡丹江做网站的公司星沙网站优化seo
  • 商城网站建设费用wish跨境电商平台官网
  • 外贸响应式网站建设wordpress提醒
  • 推广网站大全腾讯云新人服务器
  • 网站title怎么修改360中小网站建设
  • 电子商务网站建设与维护 答案崇州市微信端网站建
  • 上海企业网站黄页网站的百度百科怎么做
  • 短租网网站开发 项目背景少女心仙气手工
  • 网站上怎么做福彩卖家软件技术岗位有哪些
  • 怎么做电子商务网站宝塔面板做织梦网站
  • 做什么网站吸引人计算机专业有哪些
  • 建设银行软件官方网站建筑设计自考
  • 建个网站花钱做百度推广二次开发包
  • 遵义网站建设公司招聘站长seo软件
  • 在网上做国际快递淘宝网站建设德育网站的意义