返回信息流当进入算法内部时,我们通常发现我们的程序会占用掉几乎所有的cpu资源,用任务管理器会显示cpu占用率达到100%。这时在运行别的程序就会变得很慢。
请教达人如何能够控制自己的程序使它不必占用全部的cpu资源,例如只占用一部分?
原标题令人反感,故将“挑战性问题”改为“求助”
同时警告,以后勿使用类似标题
by Neverwinter
这是一条镜像帖。来源:北邮人论坛 / soft-design / #14218同步于 2007/1/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
[求助]请教如何让程序不占用全部cpu资源?
Ginsberg
2007/1/3镜像同步30 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
我从来没有一个单线程的程序,cpu占用率超过50%
建议你检查一下你的算法
另外,这个问题还应该说清楚运行环境,开发语言,开发工具等等
【 在 Ginsberg (mORNING, tHE wORLD~~) 的大作中提到: 】
: 当进入算法内部时,我们通常发现我们的程序会占用掉几乎所有的cpu资源,用任务管理器会显示cpu占用率达到100%。这时在运行别的程序就会变得很慢。
: 请教达人如何能够控制自己的程序使它不必占用全部的cpu资源,例如只占用一部分?
re,我也不是很喜欢,以前大家问问题都是
跪求XXX的,现在改成挑战XXX了。
不过言归正传,这个肯定是有的,每个进程
都是有资源占用限额的,比如,一个线程或进程,只能
占用CPU时间的多少多少,这是在内核的线程调度中控制的
不过我对此研究不多,应用的话也不需要了解太多,
网上应该有例子吧,
【 在 sunway (sunway) 的大作中提到: 】
: 不喜欢你的标题
其实,这个很难控制
如果是windows下,那么是windows自己的资源调度方案在起作用
比如你单独运行某个程序,cpu可能到100%
但同时再运行另外一个程序,虽然慢,但一样能运行
耗cpu199%那个程序这时候也就没有耗100%
另外,单线程的程序和容易超过50%甚至达到100%
只要是一直在运行算法
一般很难超过是因为程序大部分时候处于idle状态~~
还有,不喜欢lz标题……
好了,大家不要再批判我的标题喽~~斑竹已经把它改过来了
先澄清一下,之前我说的cpu占用率指的是所有进程总的,也就是任务管理器最下边状态栏里写的“cpu使用”
我曾经试过用多线程,但是问题依然存在,只要算法在跑,cpu占用率一直很高。由于“cpu使用”持续很高,结果cpu风扇狂转,声音很大。我想知道的是能不能有一种方法,能够让程序安静的在后台运行,类似于各种杀毒软件的杀毒过程那样。目前我知道的方法是修改程序的进程优先等级,这种方法很奏效,但是我不知道是不是还有别的方法。
re
如果是循环的话,在循环里加sleep可以大大减少cpu占用率
【 在 hisashi 的大作中提到: 】
: 在你的循环里加个几毫秒的sleep或许会好些