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。

猜你喜欢

转载自blog.csdn.net/xwpcom/article/details/79917707