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

wordpress weather网站优化总结

wordpress weather,网站优化总结,wordpress邮件设置方法,成都有做公司网站的公司吗上一节我们讲了jinfo#xff0c;jstat#xff0c;jmap的使用#xff0c;还简单的讲了下如何使用jmap导出内存映像文件#xff0c;这次#xff0c;我们来实战一把内存溢出问题。环境准备首先我们先模拟一下内存溢出的场景#xff0c;以下这段代码在访问后肯定会造成堆内存…上一节我们讲了jinfojstatjmap的使用还简单的讲了下如何使用jmap导出内存映像文件这次我们来实战一把内存溢出问题。环境准备首先我们先模拟一下内存溢出的场景以下这段代码在访问后肯定会造成堆内存溢出代码如下RestControllerRequestMapping(/section1)public class TestHeapController { private List heapList new ArrayList(); /*** * -Xms16m -Xmx32m */ GetMapping(/heap) public ResultVO testHeap() { int i 0; while (true) { Student student new Student(i, UUID.randomUUID().toString()); System.out.println(student.toString()); heapList.add(student); } }}那么我们如何解决这样的问题,在生产环境中代码肯定不会这么清晰简单那么我们怎么去分析和解决呢我们需要导出内存映像文件来分析解决。有两种方式可以导出内存映像文件这边我们在重温一下。有两种方式可以导出映像文件:1. 配置参数内存溢出自动导出-XX:HeapDumpOnOutOfMemoryError-XX:HeapDumpPath./2. 使用jmap命令手动导出关于jmap如何导出可以看我的上一篇文章Java性能调优学习(二)-jinfojstatjmap的使用下面我们先准备一下需要分析的内存映像文件配置JVM参数后启动我们刚刚的实例代码开多个浏览器多次访问后很快就会出现异常这个时候由于配置了参数会自动导出内存映像文件我们将这个文件先放好备用。参数配置自动导出下面就轮到我们的内存分析工具MAT登场啦。MATMAT(MemoryAnalyzerTool)工具是eclipse的一个插件(MAT也可以单独使用)使用起来非常方便尤其是在分析大内存的dump文件时可以非常直观的看到各个对象在堆空间中所占用的内存大小、类实例数量、对象引用关系、利用OQL对象查询以及可以很方便的找出对象GCRoots的相关信息当然最吸引人的还是能够快速为开发人员生成内存泄露报表方便定位问题和分析问题。MAT工具的下载地址为https://www.eclipse.org/mat/downloads.php下载完成后直接解压运行其中的MemoryAnalyzer.exe文件即可启动MAT工具如下所示mat目录点击File-Open heap dump 打开之前导出的dump文件,将会生成Overview选项效果如图:在Overview选项中以饼状图的形式列举出了程序内存消耗的一些基本信息其中每一种不同颜色的饼块都代表了不同比例的内存消耗情况。点击overview右侧的panel我们可以看到如下图所示的效果里面列举了可能的泄漏点并且对泄漏点进行了描述。疑似的泄漏点再介绍一下我们工具栏上常用的一些功能Dominator TreeHistogramDominator Tree:如果需要定位内存泄露的代码点我们可以通过Dominator Tree菜单选项来进行排查。Dominator Tree提供了一个列表。可以看到对象之间dominator关系树。从MAT的Dominator tree中可以看到占用内存最大的对象以及每个对象的Dominator。Dominator Tree点开“”符号可以进一步查看内层应用情况同时还可以看到对应类对象的属性值如下所示展开图可以看到我们这边有一大堆的Studen一直占用着内存没有被回收那么肯定是有问题的。因为咱们的实验代码比较简单但是在生产环境上肯定是没有这么清晰的所以通常在排查内存泄漏的时候我们还需要排除掉虚引用/弱引用/软引用等引用链查看强引用。(强引用是使用最普遍的引用。如果一个对象具有强引用那垃圾回收器绝不会回收它。)那么如何排除掉虚引用/弱引用/软引用等引用链呢如下图所示选择exclude all phantom/weak/soft etc.references意思是查看排除虚引用/弱引用/软引用等的引用链因为被虚引用/弱引用/软引用的对象可以直接被GC给回收我们要看的就是某个对象否还存在Strong 引用链(在导出HeapDump之前要手动出发GC来保证)如果有则说明存在内存泄漏然后再去排查具体引用。排除其他引用Dominator Tree讲完了下面我们来讲一下工具栏上还有一个好用的功能Histogram。HistogramHistogram清晰的列出了每个类的ObjectsShallow HeapRetained Heap关于Shallow Heap和Retained Heap的具体意义在有空的时候我会单独讲解现在可以先理解为对象本身占用的内存大小和该对象被回收时可以释放的内存大小。Histogram通过正则过滤当我们找到疑似存在泄漏的类之后我们可以进行进一步分析排除引用。排除引用还有一些会在平时用到的右键菜单中的按钮List objects with incoming references 引用到该对象的对象 with outcoming references 被该对象引用的对象Show objects by class incoming references 引用到该对象的对象 outcoming references 被该对象引用的对象 总结今天为大家带来了jmapmat内存分析感兴趣的小伙伴们可以收藏并关注我为大家持续带来干货。
http://www.pierceye.com/news/875671/

相关文章:

  • 平安建设网站做写手哪个网站好
  • 服务器硬件影响网站速度网站链接优化
  • 商品网站建设格式最火的做网站源码语言
  • 商城建站系统多少钱商标网官方查询官网
  • 织梦网站怎么做备份昆明航空公司官方网站
  • 大什么的网站建设公司达州网站建设哪家好
  • 漳州网站建设优化房地产网站建设意义
  • 兰州酒店网站建设app推广联盟平台
  • 周边产品设计培训哪家好响应式网站做优化好吗
  • 互联网金融整站seo排名要多少钱
  • 阜宁县城乡建设局新的官方网站重庆智能网站建设哪里有
  • 做ppt常用的网站有哪些建设网络强国要有自己的技术
  • 保险网站有哪些保险网站网页设计与制作课程说明
  • 海外网站seo优化wordpress支持asp.net
  • 什么网站做企业邮箱服务单页网站cms
  • 做电商网站的框架结构图wordpress用户标签
  • 益阳做网站的公司濮阳新闻直播
  • 网站logo更换晋城市 制作网站
  • 读书网站建设策划书摘要推荐网站建设案例
  • 西安网站建设 大德wordpress图片浏览
  • 陕西建设注册中心网站网页设计与制作长江职业学院
  • 佛山网站设计外包有没有做淘宝客网站的
  • 手机怎么做3d短视频网站网站开发工程师php岗位职责
  • 莆田做网站公司电话人才网站建设方案
  • 找人做网站需要问哪些问题桂林漓江悦府
  • 专门做2次元图片的网站高清vpswindows在线看
  • 青岛手机建站公司网站源码com大全
  • 电脑搭建网站需要空间wordpress文件夹权限设置方法
  • 建设网站基础医疗网站建设比较好的
  • 建个网站视频教程小程序开发是前端还是后端