noonsun 发表于 2010-3-22 21:26:45

cpu 为何占用 50%

用 循环 加 ProcessExists监测一个进程运行,cpu 为何 占用 50%如果监测两个进程,cpu 就已经占用 100% 了 ,求高手解决方法 O(∩_∩)O谢谢!

afan 发表于 2010-3-22 21:54:03

循环中加入一行 sleep(1)

noonsun 发表于 2010-3-22 22:10:07

循环中加入一行 sleep(1)
afan 发表于 2010-3-22 21:54 http://www.autoitx.com/images/common/back.gif


    多谢 回去试一下,有问题 不免还会麻烦您的 谢谢

rikthhpgf2005 发表于 2010-3-23 15:00:38

whlie 不能空,我出遇到过,最好sleep下

gapkiller 发表于 2010-3-23 23:37:28

或者你也可以加个GuiGetMsg().......

newuser 发表于 2010-3-24 09:39:51

回复 5# gapkiller

如果用了GUIgetMSG,再用sleep,不是更消耗CPU吗?我是新手,不太懂.

newuser 发表于 2010-3-24 09:41:00

回复 5# gapkiller

如果用了GUIgetMSG,再用sleep,不是更消耗CPU吗?我是新手,不太懂.
基本的 消息循环 结构
下面是 消息循环 的基本结构:

While 1
$msg = GUIGetMsg() ; 截获消息
... ; 处理消息
...
WEnd



像上面这种循环周期非常短的脚本通常会把CPU占用推到高达 100%,幸运的是 GUIGetMsg 函数可在无事件等待时自动闲置CPU。另外千万 不要 因为怕增加CPU压力而自己添加休眠语句(Sleep)到脚本中,这么做只会让GUI响应迟钝。

afan 发表于 2010-3-24 13:05:29

回复 7# newuser


    用了GUIGetMsg() 就不必使用 sleep() 了

noonsun 发表于 2010-3-24 13:17:20

多谢各位老师的指点 ,多谢多谢

lxz 发表于 2010-4-25 05:55:01

$msg = GUIGetMsg() ; 截获消息    学习了.

menfan 发表于 2010-4-25 08:18:53

While 1
$msg = GUIGetMsg() ; 截获消息
... ; 处理消息
...
WEnd

lsssdtc 发表于 2011-8-31 12:50:43

你要是4盒的CPU估计就是25%了

zerobin 发表于 2012-5-28 10:17:33

借 5楼 的话:
像上面这种循环周期非常短的脚本通常会把CPU占用推到高达 100%,幸运的是 GUIGetMsg 函数可在无事件等待时自动闲置CPU。另外千万 不要 因为怕增加CPU压力而自己添加休眠语句(Sleep)到脚本中,这么做只会让GUI响应迟钝

GUIGetMsg 函数是循环模式下的。在事件模式中就只能用sleep是不?
是不是事件模式中添加sleep到脚本中就会让GUI相应迟钝。sleep(10)sleep(100)sleep(100)这三个有什么区别。
请指教,谢谢
页: [1]
查看完整版本: cpu 为何占用 50%