Linux中如何精准定位JVM线程CPU过高
第一步:先找出java的进程Id(PID) 假设java应用名称是zcg_commodity
ps -ef|grep zcg_commodity
得到进程Id为32464
第二步:找出该进程内最消耗CPU的线程
top -Hp pid
输入top -Hp 32464
TIME列就是各个java线程耗费的CPU的时间,比如图中是线程ID的为2012的线程,
通过 printf “%xn” 2012
得到2012的十六进制为 7dc
第三步:
一般会进到jdk的bin目录下,root权限执行
jstack 32464|grep 7dc
搜一下:Linux中如何精准定位JVM线程CPU过高

手机中JVM内存是什么意思?是干嘛用的?
java虚拟机,要运行java程序必须要先有它,JVM就相当于一个能运行JAVA程序的操作系统,就像windows是能运行exe程序的操作平台。
就是因为有了JVM,所以java程序才能在跨平台上运行,电脑(比如说windows和linux等)和手机(普通手机和S60等)上都拥有它们相应版本的JVN平台。只是分的两个区域而已, 新对象都会在eden区, 满了之后会清理, 如果满足需要保留的条件, 就会放到survivor区, 顾名思义 就是幸存者. 详细的原理请看专业书籍java虚拟机,运行java程序的,有jvm才能运行java程序








