找回密码  加入

AUTOIT CN

搜索
查看: 522|回复: 9

[效率算法] 请教各高手,实现每隔120秒的周期检查操作,如何设计,比较省CPU占用资源?

[复制链接]
发表于 2018-2-8 14:10:08 | 显示全部楼层 |阅读模式
我原来是这么做的:
  1. While 1

  2. If $xxx = $xx Then
  3.   ;进行相关操作
  4. EndIf
  5.    
  6. Sleep(120000)

  7. WEnd
复制代码
这里我发现有个问题,编译运行后,就算条件不成立,没有进行相关操作,笔记本电脑的风扇也会自己高速转起来,退出这个程序,就没什么问题了,说明AutoIt这种周期检测程序对CPU的占用还是挺高资源使用的.(事实上我已经使用裸奔系统,没有其它什么防病毒之类的软件在后台)

我是想到另外一个思路,获取现在时间作为变量1,然后去获取新的时间作为变量2,
那么变量2-变量1,如果差值等于120,那么就进入到检测操作,应该会比While + Sleep的方式更占用少的CPU资源吗?
发表于 2018-2-8 14:33:43 | 显示全部楼层
Sleep() 本来就应该是降低CPU占用的惯用手段,怎么就还占用且高了?估计是代码其它部分的问题,你可以进行最简测试看看~
发表于 2018-2-8 15:04:34 | 显示全部楼层
回复 1# sanfer8889


   你用  SLEEP (10)  看看  資源 有無降下來
 楼主| 发表于 2018-2-9 16:58:40 | 显示全部楼层
Sleep() 本来就应该是降低CPU占用的惯用手段,怎么就还占用且高了?估计是代码其它部分的问题,你可以进行最 ...
afan 发表于 2018-2-8 14:33


代码很简单的,就是检测系统服务有无起来,有起来,就关掉。。。
 楼主| 发表于 2018-2-9 16:59:19 | 显示全部楼层
回复  sanfer8889


   你用  SLEEP (10)  看看  資源 有無降下來
kk_lee69 发表于 2018-2-8 15:04



立马就解决了CPU高占用的问题。。。。,晕,都不知道原因所在。。。
发表于 2018-2-9 17:10:30 | 显示全部楼层
回复 5# sanfer8889


    因為你 SLEEP 太多了@@  系統忙著計算   要SLEEP 的時間還有多久
发表于 2018-2-12 08:23:34 | 显示全部楼层
建议采用时间判断  + sleep(10)
发表于 2018-2-13 21:19:47 | 显示全部楼层
;注册函数
AdlibRegister("_aa", 120000)

Func _aa()
;这里每120秒运行一次
EndFunc
;AdlibUnRegister("_aa")注销函数
发表于 2018-2-14 15:49:47 | 显示全部楼层
120秒执行一次,其余时间都在SLEEP,占用会高?
发表于 2018-2-17 13:38:02 | 显示全部楼层
些帖子好多大神回复!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备15028933号-3 )谷歌 百度

GMT+8, 2018-10-17 14:23 , Processed in 0.092473 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表