如何减少程序对CPU使用率(100分)

Y

ywj1997

Unregistered / Unconfirmed
GUEST, unregistred user!
本人造了一个不断循环运行的程序,程序过程对数据库的读取和提交数据都比较频繁,打开windows资源管理器时,会看到该程序在处理数据的时候占用的CPU资源比较高,60%-100%间浮动,有没有办法降低一下该程序对CPU的使用率?
 
不断循环的程序多用于实时控制,因为是独占模式,无所谓;如果是一般程序或游戏,还是用定时器好...
 
这种老问题,LZ应该先搜索一下
有几种方法:
一、用线程
二、定时器
三、Application的ProcessMessages方法
 
1,优化算法。
 
每次循环加个sleep应该就可以了
 
用线程最有效
 
sleep可以有效减少cpu占用的。
程序运行到sleep时,表示放弃剩余的时间片,并转交cpu控制权。
但要注意,楼主这种情况不要设置sleep参数为零,这样很可能会被系统再次调度。
设置个 sleep(10);
效果就有了。
另外,长期死循环的处理方式有待改进。
 
引用“lxw5214, 时间:2008-8-4 13:55:21, ID:3912084
用线程最有效”
如果是深度循环,建立新线程cpu还是100%的。
线程内还是要采用其他方法来调度cpu才行
 
顶sleep,在线程里面也要sleep最好
 
优化算法,减少读写数据库,做到真正减少对CPU的使用,也可以减少读写硬盘。
 
顶部