+ -
当前位置:首页 → 问答吧 → MFC程序的CPU使用率和线程数

MFC程序的CPU使用率和线程数

时间:2011-12-21

来源:互联网

用MFC写了一个处理数据的程序。在笔记本上运行。然后看到这个程序的CPU占用率一直低于25%,最多也只能占用8个线程。这样计算太慢了,算一组数据要好几个小时。怎么加程序或者修改设置可以使CPU使用率高一点呢?比如70% 。线程数也希望多一点,比如占到50个。求教怎么修改程序。求大牛指导~新人分数不多,请见谅。。

作者: zhiyayan   发布时间: 2011-12-21

代码问题吧,是否有很多等待?

作者: ouyh12345   发布时间: 2011-12-21

引用 1 楼 ouyh12345 的回复:

代码问题吧,是否有很多等待?


是因为计算量太大了。。

作者: zhiyayan   发布时间: 2011-12-21

线程多,并不能保证占用的cpu也多,因为线程需要调度

可以做个试验,一个进程,就一个主线程,然后不停地做某种运算,看cpu是多少

作者: ouyh12345   发布时间: 2011-12-21

在多核CPU的情况下,
如果要使用多核,那么使用 Parallel库,或者使用 openMP.
更加重要的改进你的算法。让她沾满整个 CPU 的一个核心。

作者: Saleayas   发布时间: 2011-12-21

引用 3 楼 ouyh12345 的回复:

线程多,并不能保证占用的cpu也多,因为线程需要调度

可以做个试验,一个进程,就一个主线程,然后不停地做某种运算,看cpu是多少


我试了一下就普通的MFC计算的程序,不做线程控制,最多只能用25%的CPU。在台式机上就是50%。怎么回事呢?

作者: zhiyayan   发布时间: 2011-12-21

引用 4 楼 saleayas 的回复:

在多核CPU的情况下,
如果要使用多核,那么使用 Parallel库,或者使用 openMP.
更加重要的改进你的算法。让她沾满整个 CPU 的一个核心。


请问是否可以指导一下呢?小弟是新手,线程和进程都是刚刚知道概念。。

作者: zhiyayan   发布时间: 2011-12-21

如果你没有做并行处理,
那么在多核CPU上只用一个核心。
两核 CPU 上只占用 50%.

作者: Saleayas   发布时间: 2011-12-21

引用 4 楼 saleayas 的回复:

在多核CPU的情况下,
如果要使用多核,那么使用 Parallel库,或者使用 openMP.
更加重要的改进你的算法。让她沾满整个 CPU 的一个核心。


请问怎么改算法,让它占满整个 CPU 的一个核心呢?

作者: zhiyayan   发布时间: 2011-12-21

引用 7 楼 saleayas 的回复:

如果你没有做并行处理,
那么在多核CPU上只用一个核心。
两核 CPU 上只占用 50%.


嗯,看了一下,50%的电脑确实是双核的,25%的却是是四核的。然后怎么使用多核呢?谢谢~

作者: zhiyayan   发布时间: 2011-12-21

引用 3 楼 ouyh12345 的回复:

线程多,并不能保证占用的cpu也多,因为线程需要调度

可以做个试验,一个进程,就一个主线程,然后不停地做某种运算,看cpu是多少


嗯,这个确实是和CPU的核个数有关的。然后怎么多核运算呢?求指教~谢谢

作者: zhiyayan   发布时间: 2011-12-21