导航:首页 > 编程语言 > javacpu占用高

javacpu占用高

发布时间:2023-08-28 14:26:23

1. java如何定位占用CPU比较高的问题

一、确定消耗CPU的Java进程

备注:

1、jstack 输出的堆栈信息,线程id对应的16进制为小写,查找时要统一按照小写方式查找

2、jstack输出为当前瞬间的堆栈信息,如果遇到间断性出现CPU高的问题时,需要多输出几次

从上面方式定位到代码Test.main(Test.java:4)处导致了CPU偏高的问题,那我们查看下代码具体如何实现的?

代码实现:

public class Test {
public static void main(String[] args) {
while(true) {

}
}
}

从代码层面看该处实现了一个死循环,所以导致了线程占用CPU偏高的问题。

2. 哪些原因会造成java.exe占用大量cpu资源

额,我知道的只有死循环,当一条线程在一个循环内,如果不间断的跑这个循环,很容易就高内存

3. Java中CPU占用过高问题如何解决

方法1
1.jps 获取Java进程的PID。

2.jstack pid >> java.txt 导出CPU占用高进程的线程栈。

3.top -H -p PID 查看对内应进程的哪个线程占用CPU过高。

4.echo “obase=16; PID” | bc 将线程的PID转换为容16进制,大写转换为小写。

5.在第二步导出的Java.txt中查找转换成为16进制的线程PID。找到对应的线程栈。

6.分析负载高的线程栈都是什么业务操作。优化程序并处理问题。
方法2
1.使用top 定位到占用CPU高的进程PID

top

通过ps aux | grep PID命令

2.获取线程信息,并找到占用CPU高的线程

ps -mp pid -o THREAD,tid,time | sort -rn

3.将需要的线程ID转换为16进制格式

printf "%x\n" tid

4.打印线程的堆栈信息

jstack pid |grep tid -A 30

阅读全文

与javacpu占用高相关的资料

热点内容
wp10微信安装不了 浏览:793
微软数据库密码怎么改 浏览:627
我们是贵族什么app可以看 浏览:65
哪个app认字免费 浏览:964
少儿编程线上教育如何 浏览:137
ps3升级检测不到优盘升级文件 浏览:845
vs连接数据库显示数据 浏览:867
win10的设备和打印机 浏览:876
linux最新 浏览:970
苹果6有时候自动重启 浏览:851
nodejs处理500页面 浏览:456
win10u盘格式化失败怎么办啊 浏览:113
一个游戏测试你java基础是否扎实 浏览:27
怎样让软件不提示更新系统升级 浏览:653
1567密码是什么意思 浏览:759
手机和电视传输文件 浏览:844
iphone5美版怎么样 浏览:852
spss如何比较两组数据的相关性 浏览:935
cad以样板文件打开 浏览:982
计算机网络技术与应用视频 浏览:924

友情链接