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

红色简约的手机社区类网站html5响应式模板下载网站上做相关链接

红色简约的手机社区类网站html5响应式模板下载,网站上做相关链接,青岛做网络直播的网站,二次开发教程文章目录 常用命令1. jps2. jconsole3. jstat4. jmap 工具1.jvisualvm 排查OOM的方法其实很简单很简单。 如果能找到拋OOM的日志#xff0c;可以在日志里看到是哪一行抛出的OOM异常。如果找不到日志#xff0c;那么处理方式是导出Java进程的内存快照#xff0c;然后用工具查… 文章目录 常用命令1. jps2. jconsole3. jstat4. jmap 工具1.jvisualvm 排查OOM的方法其实很简单很简单。 如果能找到拋OOM的日志可以在日志里看到是哪一行抛出的OOM异常。如果找不到日志那么处理方式是导出Java进程的内存快照然后用工具查看OOM日志。如果打印OOM日志的行不是导致OOM的罪魁祸首因为也许是别的地方把内存占完了刚好此处要申请内存就抛OOM了那就通过工具查看哪些对象占用了大量内存未释放进而找到这些对象的所在的类。 在学习如何排查OOM之前先来学习几个常用的命令它们对于分析内存、线程、垃圾收集有着很好的帮助。如果不想浪费时间也可直接跳到“工具”目录。 常用命令 1. jps jps 是 JDK 自带的命令行工具用于查看 Java 进程。 我们都知道 Linux 中 ps 命令是用来查看进程的jps 相当于是 java ps是只查看 Java 进程的命令在Windows和Linux上都可以。 例如我们写一个main方法 public class Test1 {public static void main(String[] args) throws InterruptedException {while (true) {Thread.sleep(1000L);System.out.println(hello world);}} }使用jps命令查看进程号 2. jconsole jconsole 是 JDK 自带的一个图形化监控工具。 只能在Windows上使用在Linux上一般打不开除非有图形界面库。 用它可以连接到正在运行的 Java 应用程序并监视其 CPU 使用率、内存使用情况、线程状态、有无死锁、类加载等。jconsole 对于实时监控 Java 应用程序的健康状况和进行性能调优非常有用。 我们直接在控制台输入 jconsole 回车便可打开监控工具。 step1 输入控制台输入jconsole回车打开如下界面。 step2 选择本地进程如我这里选的是刚刚启动的Test1然后选择“不安全的连接”。 然后就能非常直观的监控 CPU、内存、线程、类的状态啦~如图 在“线程”tab页还可以非常方便的检测当前进程有无死锁状态的线程这也是 jconsole 最常用的功能之一。如下图 也可以使用jconsole连接远程的Java进程但是一般不这么用不做过多讲解。 3. jstat jstat 相当于是 jconsole 的命令版jconsole 是 jstat 的可视化版。 jstat 也是 JDK 自带的命令行工具用于监控 Java 程序的垃圾收集、类加载、JIT编译等方面的信息。 常用命令 jstat -class 查看类加载和卸载情况 jstat -compiler 查看JIT编译器的编译情况 使用方式见下图 上面两个命令我们一般也用不到最常用的命令还是 jstat -gcutil jstat -gcutil 命令用于查看垃圾收集情况包括新生代和老年代的垃圾收集信息。 解释图中命令jstat -gc 是查看垃圾收集情况1204是进程号1000是每1秒打印一次5是一共打印5次。这里的值是百分比S1区被占用了26.78%Eden区被占用了47.65%。 如果不想查看百分百而查看具体的值可使用 jstat -gc 命令 4. jmap jmap 是 JDK 自带的一个命令行工具主要用于打印出 Java 进程的内存快照包括堆内存的详细信息、垃圾回收器信息等。它对于分析和诊断内存泄漏或需要优化内存使用的情况下非常有用。 使用方式 jmap -dump:file文件名 进程ID使用示例 我们改造一下测试用例让线程创建很多不能被回收的静态 Integer 对象并且让线程保持运行状态。如下 public class Test1 {static ListInteger list new ArrayList();public static void main(String[] args) {for (int i 0; i 1000000; i) {list.add(i1);}while (true) {}} }导出内存快照如下 然后就会生成一个 d.hprof 文件接下来就可以用可视化工具检测内存状态啦~ 其实为了在发生OOM时及时导出快照信息我们可以在 Java 应用启动时加上参数让它在发生OOM时自动dump内存快照。参数如下 -XX:HeapDumpOnOutOfMemoryError: 当 JVM 抛出 OOM 时自动导出内存快照。-XX:HeapDumpPath路径: 指定快照文件的保存路径。如果没有指定这个参数默认情况下堆转储文件会被写入到工作目录下文件名为 java_pid进程id.hprof。 工具 工具有很多比如 jvisualvm、JProfile、Eclipse Memory Analyzer等等各有千秋。我们这里只演示jvisualvm的用法。 我们先创建一段代码让它抛出OOM异常并自动导出内存快照 package com.fanren;import java.util.ArrayList; import java.util.List;public class Test1 {static ListInteger list new ArrayList();public static void main(String[] args) {for (int i 0; i 1000000; i) {list.add(i1);}} }然后配置启动类配置堆内存为10m并且发生OOM时自动导出内存快照 接着运行就会报错 已经发生OOM异常并且导出了 java_pid25104.hprof 文件。 接下来我们就可以在工具中使用 java_pid25104.hprof 文件排查OOM的原因了。 1.jvisualvm jvisualvm在JDK 6 Update 7版本后作为标准工具被引入也就是说 jvisualvm 是 JDK 自带的省的下载了。 我们在控制台输入 jvisualvm 即可打开该工具。 如上图进来后如果本地有正在运行的 Java 进程可以监控此进程双击打开可以看到右侧也有类似于 jconsole 的监控界面。也可以在此界面执行垃圾回收或是导出dump当前堆的快照非常方便。 jvisualvm 不仅可以监控正在运行的进程内存状况也可以导入内存快照。只需点击左上角的“装入快照”我们把刚刚导出的 java_pid25104.hprof 给装入进来后如下图 “概要”视图里已经提示了发生OOM的线程点击之后就可以看到报错的行号 可以发现正是我们的问题代码所在的行。 如果通过报错行号找到的不是导致OOM的罪魁祸首那么可以点击“类”视图 “类”视图里按照内存大小倒序后可以看到Integer 类型对象占用了最多的空间我们双击此行进入到“实例数”视图。如下 在这个视图里选中一个对象实例就可以在右侧“引用”模块查看到引用该对象的类是 Test1。 这样的话就可以得出结论内存溢出是 Test1 类里面的 Integer 对象过多导致的。 于是我们就可以排查代码写得是不是有问题了。
http://www.hkea.cn/news/14489646/

相关文章:

  • 北京网站设计联系方式西安网站设计 牛人网络
  • 长沙建一个网站多少钱那个网站可以查询美做空基金
  • 营销型网站重要特点是张家港杨舍网站制作
  • 如何注册网站怎么注册微博营销软件
  • 网上做图赚钱的网站西宁摄网站制作
  • 石家庄站到正定机场wordpress 页头
  • 保山网站建设优化无锡市网站
  • 企业网站模板中文 产品列表中国人可以做的c2c网站
  • 网站怎么做关键词流量快速做彩平图得网站
  • 淡水网站建设做网站需要学的语言和软件
  • 生鲜网站策划wordpress附件类型
  • 潍坊 区网站建设怎么做旅游网站
  • 织梦房产网站源码.net网站与php网站
  • WordPress标签转拼音代码优化大师的优化项目有哪7个
  • -1网站建设做企业推广的公司
  • 寻找做网站网络商城是什么意思
  • 如何设计网站首页wordpress 采集文章 图片不显示
  • 多用户商城app源码外贸网站关键词优化
  • 网站改版的好处免费的网站软件正能量
  • 南京模板建站定制网站wordpress排名
  • 焦作网站建设价格北京市建设公租房网站
  • 化学产品在哪个网站做推广最好做网站怎么实现鼠标经过图像
  • ai网站wordpress微信登录页面模板下载
  • 传奇霸主官方网站物联网平台是什么
  • 南通企业网站建设深圳网站设计三把火
  • 建设网站平台的用语a站进入
  • 做网站需要做需求分析吗wordpress 获取二级栏目
  • wordpress评论cdn刷新seo推广每天做什么
  • 动图在线制作网站自己创建一个app要多少钱
  • 网站代码500做qq头像的网站有哪些