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

深圳网站制作需要多少钱青岛网站建设 青岛博采网络

深圳网站制作需要多少钱,青岛网站建设 青岛博采网络,网站联盟是什么,青海建设局网站2019独角兽企业重金招聘Python工程师标准 jvm监控分析工具一般分为两类#xff0c;一种是jdk自带的工具#xff0c;一种是第三方的分析工具。jdk自带工具一般在jdk bin目录下面#xff0c;以exe的形式直接点击就可以使用#xff0c;其中包含分析工具已经很强… 2019独角兽企业重金招聘Python工程师标准 jvm监控分析工具一般分为两类一种是jdk自带的工具一种是第三方的分析工具。jdk自带工具一般在jdk bin目录下面以exe的形式直接点击就可以使用其中包含分析工具已经很强大几乎涉及了方方面面但是我们最常使用的只有两款jconsole.exe和jvisualvm.exe第三方的分析工具有很多各自的侧重点不同比较有代表性的MAT(Memory Analyzer Tool)、GChisto等。 jconsole JconsoleJava Monitoring and Management Console是从java5开始在JDK中自带的java监控和管理控制台用于对JVM中内存线程和类等的监控是一个基于JMXjava management extensions的GUI性能监测工具。jconsole使用jvm的扩展机制获取并展示虚拟机中运行的应用程序的性能和资源消耗等信息。 直接在jdk/bin目录下点击jconsole.exe即可启动界面如下: 在弹出的框中可以选择本机的监控本机的java应用也可以选择远程的java服务来监控如果监控远程服务需要在tomcat启动脚本中添加如下代码 -Dcom.sun.management.jmxremote.port6969 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse 连接进去之后就可以看到jconsole概览图和主要的功能概述、内存、线程、类、VM、MBeans 概述以图表的方式显示出堆内存使用量活动线程数已加载的类CUP占用率的折线图可以非常清晰的观察在程序执行过程中的变动情况。 内存主要展示了内存的使用情况同时可以查看堆和非堆内存的变化值对比也可以点击执行GC来处罚GC的执行 线程主界面展示线程数的活动数和峰值同时点击左下方线程可以查看线程的详细信息比如线程的状态是什么堆栈内容等同时也可以点击“检测死锁”来检查线程之间是否有死锁的情况。 类主要展示已加载类的相关信息。VM 概要展示JVM所有信息总览包括基本信息、线程相关、堆相关、操作系统、VM参数等。Mbean,查看Mbean的属性方法等。 VisualVM 简介 VisualVM 是一个工具它提供了一个可视界面用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序Java 应用程序的详细信息。VisualVM 对 Java Development Kit (JDK) 工具所检索的 JVM 软件相关数据进行组织并通过一种使您可以快速查看有关多个 Java 应用程序的数据的方式提供该信息。您可以查看本地应用程序以及远程主机上运行的应用程序的相关数据。此外还可以捕获有关 JVM 软件实例的数据并将该数据保存到本地系统以供后期查看或与其他用户共享。 VisualVM 是javajdk自带的最牛逼的调优工具了吧也是我平时使用最多调优工具几乎涉及了jvm调优的方方面面。同样是在jdk/bin目录下面双击jvisualvm.exe既可使用启动起来后和jconsole 一样同样可以选择本地和远程如果需要监控远程同样需要配置相关参数主界面如下 VisualVM可以根据需要安装不同的插件每个插件的关注点都不同有的主要监控GC有的主要监控内存有的监控线程等。 如何安装 1、从主菜单中选择“工具”“插件”。 2、在“可用插件”标签中选中该插件的“安装”复选框。单击“安装”。 3、逐步完成插件安装程序。 大家可能在这里会遇到安装不了的坑 解决首先用浏览器浏览 https://visualvm.github.io/pluginscenters.html 其次从中找到自己的版本我的是jdk1.8版本我选择了第二个复制它的地址 复制地址到上面的url中就可以去查看可用插件进行下载了 这里以IntelliJ Platform (pid 15784)为例双击后直接展开主界面展示了系统和jvm两大块内容点击右下方jvm参数和系统属性可以参考详细的参数信息. 因为VisualVM的插件太多我这里主要介绍三个我主要使用几个监控、线程、Visual GC 监控的主页其实也就是cpu、内存、类、线程的图表 线程和jconsole功能没有太大的区别 Visual GC 是常常使用的一个功能可以明显的看到年轻代、老年代的内存变化以及gc频率、gc的时间等。 以上的功能其实jconsole几乎也有VisualVM更全面更直观一些另外VisualVM非常多的其它功能可以分析dump的内存快照dump出来的线程快照并且进行分析等还有其它很多的插件大家可以去探索 JVM垃圾回收 JVM的新生代分为三个区域一个Eden区和两个Survivor区它们之间的比例为811这个比例也是可以修改的。通常情况下对象主要分配在新生代的Eden区上少数情况下也可能会直接分配在老年代中。Java虚拟机每次使用新生代中的Eden和其中一块SurvivorFrom在经过一次Minor GC后将Eden和Survivor中还存活的对象一次性地复制到另一块Survivor空间上这里使用的复制算法进行GC最后清理掉Eden和刚才用过的SurvivorFrom空间。将此时在Survivor空间存活下来的对象的年龄设置为1以后这些对象每在Survivor区熬过一次GC它们的年龄就加1当对象年龄达到某个年龄默认值为15时就会把它们移到老年代中。 在新生代中进行GC时有可能遇到另外一块Survivor空间没有足够空间存放上一次新生代收集下来的存活对象这些对象将直接通过分配担保机制进入老年代 1. 新生代(Young Generation)也有叫做年轻代的这里使用《深入理解JAVA虚拟机》中的叫法下同。 其实看名称就能看出一些一般情况下新创建的对象都会存放到新生代中(大对象除外)。 新生代中对象的特点是很快就会被GC回收掉的或者不是特别大的对象。 为了方便垃圾收集新生代又分出了一个Eden区两个 Survivor区。 JVM 每次只会使用 Eden区 和其中的一块 Survivor 区域来为对象服务另一块Survivor区域是空的用于垃圾回收。 举个例子第一次回收的时候虚拟机会将 Eden区Survivorfrom区域的存活对象复制到Survivorto上存活对象小于Survivorto的空间清空Survivorfrom虚拟机使用Eden区Survivorto 第二次回收的时候虚拟机再将Eden区Survivorto存活的对象复制到Survivorfrom。 这三个区域默认情况下是按照811分配也可以手动配置。 2. Eden区 Eden区位于Java堆的新生代是新对象分配内存的地方由于堆是所有线程共享的因此在堆上分配内存需要加锁。而Sun JDK为提升效率会为每个新建的线程在Eden上分配一块独立的空间由该线程独享这块空间称为TLABThread Local Allocation Buffer。在TLAB上分配内存不需要加锁因此JVM在给线程中的对象分配内存时会尽量在TLAB上分配。如果对象过大或TLAB用完则仍然在堆上进行分配。如果Eden区内存也用完了则会进行一次Minor GCyoung GC。 3.Survival from to Survival区与Eden区相同都在Java堆的年轻代。Survival区有两块一块称为from区另一块为to区这两个区是相对的在发生一次Minor GC后from区就会和to区互换。在发生Minor GC时Eden区和Survivalfrom区会把一些仍然存活的对象复制进Survival to区并清除内存。Survival to区会把一些存活得足够旧的对象移至年老代。 4. 老年代Old Generation在新生代每进行一次垃圾收集后就会给存活的对象“加1岁”当年龄达到一定数量的时候就会进入老年代默认是15,可以通过-XXMaxTenuringThreshold来设置。 另外比较大的对象也会进入老年代可以-XXPretenureSizeThreshold进行设置。 如-XXPretenureSizeThreshold3M那么大于3M的对象就会直接就进入老年代。 因此老年代中存放的都是一些生命周期较长的对象或者特别大的对象。 5. 永久代Permanent Generation 即JVM的方法区。在这里存放着一些被虚拟机加载的类信息别忘了还有动态生成的类的静态文件这就导致了这个区中的东西比老年代和新生代更不容易回收。 永久代大小通过-XX:MaxPermSizeN进行设置。 6. 元空间Metaspace从JDK 8开始Java开始使用元空间取代永久代元空间并不在虚拟机中而是直接使用本地内存。 那么默认情况下元空间的大小仅受本地内存限制。当然也可以对元空间的大小手动的配置。 JVM常见的垃圾回收机制 Minor GC Minor GC指新生代GC即发生在新生代包括Eden区和Survivor区的垃圾回收操作当新生代无法为新生对象分配内存空间的时候会触发Minor GC。因为新生代中大多数对象的生命周期都很短所以发生Minor GC的频率很高虽然它会触发stop-the-world但是它的回收速度很快。 Major GC Major GC清理Tenured区用于回收老年代出现Major GC通常会出现至少一次Minor GC。 Full GC Full GC是针对整个新生代、老生代、元空间metaspacejava8以上版本取代perm gen的全局范围的GC。Full GC不等于Major GC也不等于Minor GCMajor GC发生Full GC需要看使用了什么垃圾收集器组合才能解释是什么样的垃圾回收。 复制算法 将区域分成两部分其中一部分作为保留空间另一部分作为使用空间、当发生 垃圾回收 时首先检查使用空间里有哪些对象是存活的检查完之后把存活的对象复制到保留空间这样复制过来的好处是减少了内存碎片如果直接在使用空间清除的话那空间会很零散里然后清洗使用空间。 Survivor的存在意义就是减少被送到老年代的对象进而减少Full GC的发生Survivor的预筛选保证只有经历默认15次Minor GC还能在新生代中存活的对象才会被送到老年代。 为什么要设置两个Survivor区 设置两个Survivor区最大的好处就是解决了碎片化 下面我们来分析一下。 为什么一个Survivor区不行第一部分中我们知道了必须设置Survivor区。假设现在只有一个survivor区我们来模拟一下流程 刚刚新建的对象在Eden中一旦Eden满了触发一次Minor GCEden中的存活对象就会被移动到Survivor区。这样继续循环下去下一次Eden满了的时候问题来了此时进行Minor GCEden和Survivor各有一些存活对象如果此时把Eden区的存活对象硬放到Survivor区很明显这两部分对象所占有的内存是不连续的也就导致了内存碎片化。  我绘制了一幅图来表明这个过程。其中色块代表对象白色框分别代表Eden区大和Survivor区小。Eden区理所当然大一些否则新建对象很快就导致Eden区满进而触发Minor GC有悖于初衷。  在此我向大家推荐一个架构学习交流群。交流学习群号821169538  里面会分享一些资深架构师录制的视频录像有SpringMyBatisNetty源码分析高并发、高性能、分布式、微服务架构的原理JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源目前受益良多。 碎片化带来的风险是极大的严重影响JAVA程序的性能。堆空间被散布的对象占据不连续的内存最直接的结果就是堆中没有足够大的连续内存空间接下去如果程序需要给一个内存需求很大的对象分配内存。。。画面太美不敢看。。。这就好比我们爬山的时候背包里所有东西紧挨着放最后就可能省出一块完整的空间放相机。如果每件行李之间隔一点空隙乱放很可能最后就要一路把相机挂在脖子上了。 那么顺理成章的应该建立两块Survivor区刚刚新建的对象在Eden中经历一次Minor GCEden中的存活对象就会被移动到第一块survivor space S0Eden被清空等Eden区再满了就再触发一次Minor GCEden和S0中的存活对象又会被复制送入第二块survivor space S1这个过程非常重要因为这种复制算法保证了S1中来自S0和Eden两部分的存活对象占用连续的内存空间避免了碎片化的发生。S0和Eden被清空然后下一轮S0与S1交换角色如此循环往复。如果对象的复制次数达到16次该对象就会被送到老年代中。下图中每部分的意义和上一张图一样就不加注释了。 上述机制最大的好处就是整个过程中永远有一个survivor space是空的另一个非空的survivor space无碎片。 转载于:https://my.oschina.net/u/3972077/blog/2243643
http://www.zqtcl.cn/news/182601/

相关文章:

  • 建设免费网站制作二维码的软件app
  • 网站突然没收录了网站建设和运营的成本是多少钱
  • 家政公司网站模板wordpress防cc代码
  • 福田附近做网站公司网站反向链接
  • 南阳网站关键词哪做网站便宜
  • 往网站上做新东西需要什么智库网站建设
  • 网站建站系统程序做网站代理商好赚吗
  • 哪些网站是做食品dedecms转wordpress
  • 广东华迪工程建设监理公司网站网站的优化从哪里进行
  • 国产做的视频网站优秀网站首页
  • 做国际黄金看什么网站网络营销品牌推广公司
  • 手机自助建站平台手机网站开发设计报价单
  • 网站建设标书范本注册了一个域名怎么做网站
  • 行政部建设公司网站东莞市做网站
  • 网站建设开发的流程建设官方网站的主要作用
  • 怎样用模板做网站wordpress柚子皮
  • 长宁区网站建设公司内蒙古赤峰市建设局网站
  • 网站配色怎么对网站的数据库做管理
  • 企业网站效果图wap网站
  • 网站建设优化托管跨境电商怎么做流程
  • 昆明网站建站平台在线阅读网站开发教程
  • pv3d 优秀网站18种最有效推广的方式
  • 一站式网站建设顾问网站建设公司专业网站科技开发
  • python做网站比php好网站开发财务费用
  • 图片上传网站变形的处理北京网站建设有哪些公司
  • 昆山品牌网站建设wordpress 浮动二维码
  • 网站网页建设论文cms免费源码
  • wordpress登录的图片不显示seo竞价网站建设
  • 邢台做移动网站找谁网上推广平台哪个好
  • 做网站准备广州短视频拍摄公司