C/C++中哪些操作比较占用CPU? 如何定位应用程序占CPU的模块? 现在我拿到一份OCX控件的代码,功能主要是开一个线程在http服务器上取图片放到队列中,然后再显示出来,在IE上跑了一个小时左右CPU占用率会提高,现在要解决这个问题,不知道该如何下手,如何分析,不知道有没有工具可用?只知道for循环很占用CPU。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 打印Log等分析一下代码如何运行 线程空转的时候很消耗CPU的资源哈。例如线程函数里面while(1){ int i = 0;}加上sleep可以降低CPU的资源哈while(1){ int i = 0; sleep(0);}我估计你那个是已经把图片扫描完了,简单的判断一直在转就很抢CPU资源 IO的时候比较耗费CPU用户状态和内核状态切换耗费CPU很厉害 FOR循环体里加上 sleep(10)吧。 while(true)这种语句是非常消耗CPU的。但这种方式在线程里是常用的方式。可以sleep(TIME),其中TIME是一个配置的值,这样减少CPU的使用。还有一种方式是Timer,本人不建议使用,Timer本身是多线程的,便是第一个没完第二个又来了,这对CPU对IO压力都很大的。 Timer本身是多线程的?不对吧。Timer是把WM_TIMER消息放入消息队列 举个例子:多线程通信,读写访问外部文件,比如TXT. 搞定了,是GDI的对象忘记释放,导致GDI对象增长(在OnPaint里面,多恐怖啊),所以导致CPU增长的厉害。句柄泄露也能让CPU增长,切记。 我更正一下,Timer并非多线程的,切记! 王艳平Windows程序设计 自写的atl 组件,并将其插到richedit中 基于单文档的对话框画图 关于如何裁剪bitmap VC6里面怎么把CString 转成int型? 动态创建一个窗口。但是这个窗口的控件不能获得焦点。 一个类似资源管理器的界面问题! 如何得到一份rfc 用到GetPrivateProfileInt()的程序为什么在Win9x下没问题,而到NT下就出错? 如何获取windows系统最大进程数量? 请问WM_DRAWITEM消息什么时候产生? 用MFC的cfile写的代码,在pc机上实现文件的传输
例如线程函数里面
while(1)
{
int i = 0;
}加上sleep可以降低CPU的资源哈
while(1)
{
int i = 0;
sleep(0);
}我估计你那个是已经把图片扫描完了,简单的判断一直在转就很抢CPU资源
用户状态和内核状态切换耗费CPU很厉害
但这种方式在线程里是常用的方式。可以sleep(TIME),其中TIME是一个配置的值,这样减少CPU的使用。还有一种方式是Timer,本人不建议使用,Timer本身是多线程的,便是第一个没完第二个又来了,这对CPU对IO压力都很大的。