怎么jstack 统计线程数的CPU占有率

一,在centos linux 上查看进程占用cpu过高
查看哪个进程程消耗最高
二,查看JAVA进程中哪个线程消耗最高
2.1 导出java运行的线程信息
jstack 进程id(jps查看)
jstack 进程id & ps.txt
jstack -l 进程id (窗口打印)
//另外还有一种方式
如果启动方式如下:
nohup java -classpath conf/:my.jar
com.tank.manClass&./log.out 2&&1 &
则执行:&kill -3 PID,进程信息会输出到/log.out&
2.2 查找最消耗cpu的java线程
找到java进程PID
命令:ps -mp&pid&-o THREAD,tid,time & 或者 &ps -Lfp&pid
通过%CPU和 TIME,判断占用的线程TID
找到TID,转换成16进制,然后在上面(jstack 进程id & ps.txt)导出的文件中搜索,就可以定位到具体的线程,类。
阅读(...) 评论()TopShow – 线程 CPU 使用率监视工具
(快来投票)
Loading...
线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包涵在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在 Unix System V 及 SunOS 中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。via
TopShow 还有俩功能,Kill(杀掉)进程以及 Suspend(暂停)/ Resume(恢复)进程。
貌似process explorer更强。
按分类查看文章:
大家都在讨论些什么
: 都是来提建议的。我的建议就是,练好说话的技巧,可以用耳机上的麦克风,带着耳机边说边放,就能听出自己声音的不足之处了。: 怎么成功的!!!求说下: 我曾经把一个视频里面的音频提取出来,然后把音频转为了文字,进行观看。。。
对于软件的话,没有复杂到出个视频来使用的程度吧。设计和视频制作类软件除外……: 作者来冒个泡。。。。: 我就提一个建议,flash目前人人喊打。能不能别用flash播放视频?现在chrome浏览器默认都禁止flash了,iphone上看小众软件的网页也无法播放视频: 我来扯点别的,与视频本身无关的。
我爱看小众呢,原因之一就是简短快速的点评(长评方面少数派做得还行,虽然越来越装x了)。扫一眼,感兴趣的再自己去搜更多内容。
转视频绝对不是一个好主意。一句直白难听的话,我没闲心看又x又长的视频。现在碎片化已经很严重了,更要聚拢碎片啊。
以前越做越烂希望咸鱼翻身的appso,也试图搞过视频点评(当然,人家没录那么长,就十分钟),结果评论区清一色强烈要求文字版的留言。
40分钟的百家讲坛我20分钟能读完文字版,我干嘛花翻倍时间去看知识密度那么低的视频?文字不好看就跳读,视频一段不好看我来回拉进度条?拉过头再拉回来?
如果我在火车上,再花十倍流量去看吗?直接标已读过去了。移动流量辣么贵我烧不起。有专属优惠套餐花不完的学生dog们憋bb。
现在视频直播是趋势,无疑编辑部肯定有跟风打算。是不是适合跟,望三思。: BGM声音有点大=
最热门标签
传说中的小众软件 让你的手机应用与众不同。
商业网站、微信公众号 或其他未授权媒体不得复制、转载、使用本站内容。代俊建 怎么降低一个线程的CPU使用率? - ITeye问答
我的项目中有一个线程,这个线程里有一个循环,线程处理完循环中的事情以后,
就可以睡眠一段时间,如果再满足了循环条件它才会再次处理事情,
我已经使用了sleep方法来让线程睡眠一段时间,但是该线程使用CPU率还是很高,
能不能让该线程使用的CPU率降下来?坐等大侠们的回答
如果所有的线程都sleep的话,cpu肯定是会空闲的。
看一下是不是有其他线程在计算占用cpu,jstack打印一下,找出running状态的thread
按照你的使用场景,你线程的sleep与否,与CPU占用率的多少是没有多少关系的。有可能是你的线程中,存在着某个模块对CPU的要求高,与线程无关。
你说的还是上次那段代码的问题吗?
你看看每次循环时,是不是重新对数据库进行连接,如果是,可以做个连接池进行优化;另外看看是不是计算量太大,递归用的太多等等。
你说CPU占用太大,究竟是多大呢?多核处理器中,单个线程最多也只能把一个占满,况且你这每次还sleep5秒呢。难道每次查找更新的时间都要十几秒吗?如果真是太长,真要好好看看数据库操作的部分,也许是sql语句有问题。如果代码也没啥问题,那就简单了,换处理器!
具体可以使用jdk的jps命令或者其他工具查找、定位哪一句代码的问题。不过这个我自己没做过,你可以看看相关的书或者上网查查怎么使用。
顺便说一句,最近一段时间你发了很多问答,不懂就问当然是很好,但是我建议你花几周时间好好学习java和网络编程知识。相信看书的过程中,你会对自己提出的问题有种“原来如此”的感觉,毕竟很多都是基础问题。真心祝愿您技术日增,事业有成!
First
Wind_ZhongGang 这位兄弟请不要误导楼猪
Thread是否结束与占用CPU没有必然联系
Thread.sleep(long)使得CurrentThread 休眠, 是放弃CPU的,正如Shen.Yiyang所说,sleep会让CPU开始计算比如线程优先级来觉得哪个线程进行执行
楼猪能否再给点信息
如果再满足了循环条件它才会再次处理事情;
你可以在这个“满足循环条件上”做文章,类似wait、notify,没必须循环地去验证;
另外,Sleep确实是退出CPU竞争,不存在什么继续占用CPU;但是sleep方法会让CPU重新计算线程优先级,如果sleep时间过短,频繁让CPU计算优先级,那么是会影响CPU占用。
sleep只是让线程暂停运行,线程并未退出执行,所以仍然占用着CPU
已解决问题
未解决问题

我要回帖

更多关于 java 多线程统计耗时 的文章

 

随机推荐