![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java虚拟机
java虚拟机
涛子王
所有的程序思想都来源于生活,所以程序对于生活是比较简单的,不管多么简单的一个程序,程序员都喜欢起一个高大上的名称,所以学习代码不要先被名字吓跑,第一步先把名字的光环去掉,然后你会发现原来就是这玩意!!!
展开
-
用简单的方式去描述jvm的设计思路及原理
加载器将代码转换完成后并不结束,而是接着执行转换后的代码,这样转换后的代码才能使用加载器封装过的方法(可以理解成加载器将转换后的代码热加载进来,变成自己的一部分,然后执行)。原来的转换器将class代码转换成平台代码是一步,然后手动执行转换完的代码是一步,这两步是独立的(是两个进程)。举个例子你就明白了,平时你启动多个java程序,你会发现进程名都是叫java,并不是main函数对应的那个类的名字,这就说明了,其实jvm才是真正启动的程序,我们开发的代码只是被热加载进去的待执行代码而已。原创 2022-09-14 16:19:03 · 176 阅读 · 0 评论 -
java调优和排查
java调优和排查原创 2022-09-14 15:55:07 · 118 阅读 · 0 评论 -
java虚拟机监控 之 系统命令
1.查看cpu及内存使用情况topshift + m 按内存大小排序shift + p 按cpu占用率排序我们发现24575占据了很大的cpu开销2.查看进程具体情况top -Hp [进程id]我们发现24576这个线程占据主要的开销3.查看线程详情jstack [进程id] | grep [线程id转的16进制] -A[行数]这里提示我们程序停滞在User.java的43行,我们去查看这个文件发现是代码出现死循环,找到问题,解决...原创 2021-06-23 19:02:35 · 85 阅读 · 0 评论 -
java虚拟机监控 之 arthas
1.安装下载arthaswget https://arthas.aliyun.com/arthas-boot.jar启动java -jar arthas-boot.jar2.CPU高问题排查排查cpu使用率高启动后可以看到正在运行的java程序选择排查的程序序号回车使用dashboard命令查看各个线程的线程id及虚拟机信息我们可以看到一个名为main的线程cpu占用极高,我们按q退出dashboard,使用thread [线程id]来查看线程信息原创 2021-06-23 16:45:57 · 162 阅读 · 0 评论 -
java虚拟机监控 之 jvisualvm
jvisualvm是jdk自带的监控,可以本地及远程监控jvm状态,程序位置在[jdk路径]/bin下,我们来说下两种方式1.本地监控展开程序左边导航上的本地节点,里面就是所有正运行在虚拟机上的程序,双击程序对应的节点2连接远程服务器侧操作:1.进入bin目录cd [jdk路径]/bin2.创建数据开放配置文件vim jstatd.all.policy3.写入内容grant codebase "file:${java.home}/../lib/tools.jar" { ..原创 2021-06-23 15:39:23 · 296 阅读 · 0 评论