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我觉得就不错。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)