社区
进程/线程/DLL
帖子详情
多线程程序 cpu占用率过高
tangtangbaobao
2008-11-02 02:28:21
一个多线程程序, 有时候在应该空闲的时候,cpu占用率过高,
一般在20%~50%波动。
请问如何找出是那个线程导致cpu占用率过高?
有没有一般性的技巧或者工具可以找出问题?
...全文
487
13
打赏
收藏
多线程程序 cpu占用率过高
一个多线程程序, 有时候在应该空闲的时候,cpu占用率过高, 一般在20%~50%波动。 请问如何找出是那个线程导致cpu占用率过高? 有没有一般性的技巧或者工具可以找出问题?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tangtangbaobao
2008-11-04
打赏
举报
回复
Process Explorer真的很好用,
原来是某个别人写的dll占用CPU,
与我写的代码没关系。
谢谢各位!
flymoon99
2008-11-03
打赏
举报
回复
优化下算法,降低线程优先级。另外,在大循环里用下sleep()可以减少一些CPU占用。
维生素CC
2008-11-03
打赏
举报
回复
提供个思路:抓dump. 用.time看user time用了多少时间,用!runaway看耗时最多的thread是哪几个,~xs(x是thread id)看那个thread卡在哪了.
zengkun100
2008-11-02
打赏
举报
回复
用vs生成一个profile
cnzdgs
2008-11-02
打赏
举报
回复
用GetThreadTimes取各个线程占用CPU的时间来对比。
用户 昵称
2008-11-02
打赏
举报
回复
俺一般这样处理
if( 有事件 )
{
处理
}
else
{
Sleep( 50 );
}
WG_Wolf
2008-11-02
打赏
举报
回复
关注,对调试工具和手段一向很迷茫
JonathanS666
2008-11-02
打赏
举报
回复
死循环了,好好找一下吧
rookieme
2008-11-02
打赏
举报
回复
同意楼上
实在不行,先在线程里加上Sleep语句,可以有一些好转
ok208043624
2008-11-02
打赏
举报
回复
应该是你的线程有空转的现象...
你是Wait信号量么?
有种可能是,你的线程函数wait到了信号量,
但是进去后确什么都没有做...
导致程序一直空循环....
蒋晟
2008-11-02
打赏
举报
回复
Process Explorer
miao120550
2008-11-02
打赏
举报
回复
具体操作,你可以在程序在占有CPU50%或者100的时候,暂停调试,看看程序运行到哪里了。
miao120550
2008-11-02
打赏
举报
回复
你找找哪里循环比较多?是不是有死循环?跟程序是否多线程没有直接关系。
JAVA
多线程
精讲下
本课程是《零基础学Java》系列课程中的
多线程
相关课程.授课形式延续了之前课程的授课风格。内容细腻、详尽,由浅入深!通过本门课程的学习你可以深刻理解Java
多线程
的原理及实现运行机制,深刻学习
多线程
的生命周期、调度、控制等内容。
多线程
精讲下课程内容涵盖如下:l 线程的同步(线程安全问题)l 线程的死锁l 线程间通信l 线程组l 线程池l
多线程
的第三种实现方案l 匿名内部类方式使用
多线程
l 定时器的使用l
多线程
面试题
ubuntu下C++
多线程
CPU
占用率
过高
ubuntu下C++
多线程
程序
CPU
占用率
过高
原因: pthread线程中while循环不断侦听队列,取值进行处理,极大地消耗
CPU
资源 解决方法: while循环开头添加 sleep(1) 即可恢复正常 ...
c++
多线程
cpu
占用率
过高
解决之道
多线程
并发在我们日常的工作中占有相当的需求比例,但是
多线程
程序
很容易造成
CPU
使用率
过高
的问题,问题的原因在于我们一般的线程函数是用来处理一些简单的、需要循环处理的事情,例如一般情况下,在线程函数中我们常常使用下面的逻辑代码 while( is_running ) { // do work //...... } 如果 "do work" 的工作特别简单,或者有的时候我们在do...
C#
多线程
造成
CPU
占用率
高解决办法
在C#开发中我们难免会用到
多线程
操作,而且很多时候需要开启多个线程一直监视某个状态,当线程多的时候就会造成
CPU
内存
占用率
过高
。电脑配置低的根本吃不消。 private void button1_Click(object sender, EventArgs e) { Thread TH1, TH2, TH3, TH4, TH5; ...
MFC
多线程
编程
CPU
占用率
过高
多线程
编程,我开了三个线程,
CPU
占用率
持续达到50%左右。 解决办法: 线程中使用是while(1)
程序
不停在循环,实际用不到这么大的扫描频率,故 每个线程中添加一个Sleep(10); 一个10毫秒的休眠,这样
CPU
利用率直接降到了1%左右。
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章