#pingora #non-blocking #async #async-networking #async-io

pingora-timeout

针对Tokio运行时的高效异步定时器和超时系统

4个版本 (2个重大更改)

0.3.0 2024年7月12日
0.2.0 2024年5月10日
0.1.1 2024年4月18日
0.1.0 2024年2月27日

#612 in 异步

Download history 1029/week @ 2024-04-20 3457/week @ 2024-04-27 2499/week @ 2024-05-04 2017/week @ 2024-05-11 2993/week @ 2024-05-18 3650/week @ 2024-05-25 3360/week @ 2024-06-01 3259/week @ 2024-06-08 2841/week @ 2024-06-15 4020/week @ 2024-06-22 5302/week @ 2024-06-29 4754/week @ 2024-07-06 2986/week @ 2024-07-13 3393/week @ 2024-07-20 4510/week @ 2024-07-27 2922/week @ 2024-08-03

每月14,494次下载
用于 21 个crate (直接使用7个)

Apache-2.0

23KB
399

tokio::time::timeout的替代品,效率更高。

类似于tokio::time::timeout,但在频繁创建和取消超时的繁忙并发IO上效率更高。

此crate提供了以下优化:

  • 超时在Future第一次挂起时懒加载其计时器。
  • 创建和取消超时没有全局锁。
  • 超时计时器四舍五入到下一个10ms滴答,并且计时器在具有相同截止日期的所有超时之间共享。

基准测试

总时间438.302µs,平均每次迭代4ns

与Tokio timeout()相比

总时间10.716192ms,平均每次迭代107ns

依赖项

约3.5–10MB
约91K SLoC