Timer高性能定时器


定时器的应用非常广泛,BaseLooper框架提供了SetTimer,KillTimer来创建和销毁定时器

SetTimer(UINTtimerId,UINTinterval)

timerId为定时器id,interval为间隔时间,单位:毫秒,实际精度与很多因素有关,比如和操作系统调度,looper业务繁重程序等有关。空闲精度可达1ms以内,一般精度在10ms左右。

 

如果timerId对应的定时器已存在,则SetTimer会重置它,然后每隔interval毫秒会触发OnTimer(timerId),直到调用KillTimer来销毁定时器。

 

BaseHandler销毁时,它的所有定时器会自动被清除。

 

BaseLooper框架的定时器性能足够高效,均匀分布在1分钟之内的500万个空定时器,在inteli7上cpu占用基本为0%

测试代码如下

       {

              intstart = 10;

              intcount = 1000 * 1000*5;

              DV("begin create timer,count=%d",count);

              for(int i = start; i < start + count; i++)

              {

                     SetTimer(i,i%60000);

              }

              DV("end  create timer,count=%d", count);

       }

创建完定时器后,可在Windows任务管理器中查看进程占用的cpu。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值