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

九江网站推广徽hyhyk1国家住房部和城乡建设部 网站首页

九江网站推广徽hyhyk1,国家住房部和城乡建设部 网站首页,网站建设公众号小程序属于什么,山东省和住房建设厅网站上一篇#xff1a;09-JVM垃圾收集底层算法实现 前置启动程序 事先启动一个web应用程序#xff0c;用jps查看其进程id#xff0c;接着用各种jdk自带命令优化应用 1.Jmap 此命令可以用来查看内存信息#xff0c;实例个数以及占用内存大小 jmap -histo 14660 #查看历史…上一篇09-JVM垃圾收集底层算法实现 前置启动程序 事先启动一个web应用程序用jps查看其进程id接着用各种jdk自带命令优化应用 1.Jmap 此命令可以用来查看内存信息实例个数以及占用内存大小 jmap -histo 14660 #查看历史生成的实例 jmap -histo:live 14660 #查看当前存活的实例执行过程中可能会触发一次full gc打开log.txt文件内容如下 num序号instances实例数量bytes占用空间大小class name类名称[C is a char[][S is a short[][I is a int[][B is a byte[][[I is a int[][] 2.堆信息 3.堆内存dump jmap -dump:formatb,fileeureka.hprof 14660也可以设置内存溢出自动导出dump文件(内存很大的时候可能会导不出来) -XX:HeapDumpOnOutOfMemoryError-XX:HeapDumpPath./ 路径 示例代码 public class OOMTest {public static ListObject list new ArrayList();// JVM设置 // -Xms10M -Xmx10M -XX:PrintGCDetails -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathD:\jvm.dump public static void main(String[] args) {ListObject list new ArrayList();int i 0;int j 0;while (true) {list.add(new User(i, UUID.randomUUID().toString()));new User(j--, UUID.randomUUID().toString());}} }可以用jvisualvm命令工具导入该dump文件分析 4.Jstack 用jstack加进程id查找死锁见如下示例 public class DeadLockTest {private static Object lock1 new Object();private static Object lock2 new Object();public static void main(String[] args) {new Thread(() - {synchronized (lock1) {try {System.out.println(thread1 begin);Thread.sleep(5000);} catch (InterruptedException e) {}synchronized (lock2) {System.out.println(thread1 end);}}}).start();new Thread(() - {synchronized (lock2) {try {System.out.println(thread2 begin);Thread.sleep(5000);} catch (InterruptedException e) {}synchronized (lock1) {System.out.println(thread2 end);}}}).start();System.out.println(main thread end);} }“Thread-1” 线程名 prio5 优先级5 tid0x000000001fa9e000 线程id nid0x2d64 线程对应的本地线程标识nid java.lang.Thread.State: BLOCKED 线程状态 还可以用jvisualvm自动检测死锁 远程连接jvisualvm 启动普通的jar程序JMX端口配置 java -Dcom.sun.management.jmxremote.port8888 -Djava.rmi.server.hostname192.168.65.60 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse -jar microservice-eureka-server.jarPS -Dcom.sun.management.jmxremote.port 为远程机器的JMX端口-Djava.rmi.server.hostname 为远程机器IP tomcat的JMX配置在catalina.sh文件里的最后一个JAVA_OPTS的赋值语句下一行增加如下配置行 JAVA_OPTS$JAVA_OPTS -Dcom.sun.management.jmxremote.port8888 -Djava.rmi.server.hostname192.168.50.60 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse连接时确认下端口是否通畅可以临时关闭下防火墙 systemctl stop firewalld #临时关闭防火墙Jstack找出占用cpu最高的线程堆栈信息 /*** 运行此代码cpu会飙高*/ public class Math {public static final int initData 666;public static User user new User();public int compute() { //一个方法对应一块栈帧内存区域int a 1;int b 2;int c (a b) * 10;return c;}public static void main(String[] args) {Math math new Math();while (true){math.compute();}} }使用命令top -p 显示你的java进程的内存情况pid是你的java进程号比如19663 按H获取每个线程的内存情况 找到内存和cpu占用最高的线程tid比如19664 转为十六进制得到 0x4cd0此为线程id的十六进制表示 执行 jstack 19663|grep -A 10 4cd0得到线程堆栈信息中 4cd0 这个线程所在行的后面10行从堆栈中可以发现导致cpu飙高的调用方法 查看对应的堆栈信息找出可能存在问题的代码 5.Jinfo 查看正在运行的Java应用程序的扩展参数 查看jvm的参数 查看java系统参数 6.Jstat jstat命令可以查看堆内存各部分的使用量以及加载类的数量。命令的格式如下 jstat [-命令选项] [vmid] [间隔时间(毫秒)] [查询次数] 注意使用的jdk版本是jdk8 下一篇11-JVM调优实战-1
http://www.w-s-a.com/news/161882/

相关文章:

  • 阿克苏网站建设咨询动漫设计与制作属于什么大类
  • 网站编辑做多久可以升职wordpress版权修改
  • 网站开发维护成本计算国外外贸平台
  • 简单的招聘网站怎么做购物网站功能报价
  • 哪个网站做中高端衣服建设自己网站的流程
  • 网站建设概况做网站的是怎么赚钱的
  • 网站发布信息的基本流程现在都不用dw做网站了吗
  • 赣州热门网站深圳龙岗做网站的公司
  • 中国最大的建站平台广告传媒公司取名
  • 深圳网站设计公司专业吗学动漫设计后悔死了
  • 企业网站形象建设网站开发入职转正申请书
  • 网站设计步骤济南建设网中标公告
  • 石佛营网站建设wordpress关健词
  • 您的网站空间即将过期建站 discuz
  • 上海简站商贸有限公司福州哪家专业网站设计制作最好
  • 博客网站开发流程苏州专业做网站的公司哪家好
  • 四川手机网站建设西安 网站 高端 公司
  • 织梦大气绿色大气农业能源化工机械产品企业网站源码模版建筑工程知识零基础
  • 广州番禺网站公司v2017网站开发
  • 微信公众号怎么做微网站wordpress和dz
  • 西部数码网站管理助手 301福州搜索优化实力
  • 响应式网站介绍页面模板功能找不到
  • 公司网站如何seo自己做资讯网站
  • 天津网站建设软件开发招聘企业信用信息查询公示系统上海
  • 网站备案中做正品的网站
  • 网站建设0基础学起青海企业网站开发定制
  • 网站定制项目上海快速建站
  • 大型视频网站建设方案东莞企业网站建设开发
  • 西安php网站制作可以用AI做网站上的图吗
  • 网站开发工程师和前端企业网络推广公司