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

Java中CPU占用过高问题如何解决,第1张

方法1

1.jps 获取Java进程的PID。

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

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

4.echo “obase=16PID” | 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

先看下是否有内存泄露,简单的方法就是隔一段时间检查下内存,看看是否是持续上升。

然后看下资源是否可以优化,比颤扰陪如你加载的图片有没有resize过,尽可能减少资源的内存消耗。

游戏卡顿最主要的是FPS帧率太低,把帧率统计输出来看下。检查李尘下UI线程里或者OpenGL线程里是否做了I/O *** 作,这茄蠢个是造成卡顿的主要原因。把I/O *** 作全部放入工作线程中,UI线程只做数据读取和渲染。这样帧率就可以提高了

VP本身就调用JAVA的,有两种可能,一是JAVA本身的BUG,可以考虑升答此级最新的JDK来解闹举乱决。另外就是你的模型比较大了,这样只要一动模型中的任何地方,液档都会引起很大的计算量。

或者说VP本身有问题。

建议你还是换个建模的软件吧。

有个小的

UMLet我觉得就不错。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12417187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存