C/C++中哪些操作比较占用CPU? 怎么定位应用程序占CPU的模块

C/C++中哪些操作比较占用CPU? 如何定位应用程序占CPU的模块?
现在我拿到一份OCX控件的代码,功能主要是开一个线程在http服务器上取图片放到队列中,然后再显示出来,在IE上跑了一个小时左右CPU占用率会提高,现在要解决这个问题,不知道该如何下手,如何分析,不知道有没有工具可用?
只知道for循环很占用CPU。

------解决方案--------------------
打印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.