linux内核定时中断最小时间,时间轮定时器,仿linux内核,一个毫秒级一个100毫秒级,支持C++/go/js语言...

五个轮 每个轮里面有256个槽 精度1MS

总共256*5=1280个槽 总共是2^40=1,099,511,627,776MS =12,725.829天 =34.865年

34年,应该一般的场景够用了。适用于时间精度要求非常高的场景(精度毫秒),比如帧同步里的BUFF。

uniqstimerIII: 五个轮 每个轮里面有64个槽 精度100MS

总共64*5=320个槽 总共是2^30= ‭1,073,741,824‬ 单位:百毫秒 =‭107,374,182.4‬秒 =‭1,242.757天 =3.4年 3年多,一般的场景够用。适用于时间要求精度不是非常高(100MS以内)的场景。比如各种排行榜结算、比如玩家隔天凌晨4点刷新、比如月卡、比如心跳、比如登录空SESSION超时等等。

TIMER有一个问题:如果频繁删除时间非常非常长的定时器,会导致进程的内存会越来越多 有很多定时器被标记为Killed状态,躺在高级的时间轮里面,要轮到的时候才会清。

如果是在MMO里用,添加TIMER的时候尽量避开非常频繁地删除时间特别长的定时器(持续特别长但中间会触发的不算在此列,这里是指首次触发就特别长)

相同的TimerId不能重复 可以在_helper里面自己定义用池或者是定义分配和释放策略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值