定时器算法:时间轮、最小堆与层级时间轮
一台繁忙的 Nginx 服务器上有 100 万个活跃连接,每个连接都有 keepalive 超时定时器。如果用最小堆管理这些定时器,每次新连接到来都要 O(log n) 插入——100 万个定时器意味着 20 次比较。时间轮用 O(1) 解决了这个问题。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 1 篇文章 · 返回首页
一台繁忙的 Nginx 服务器上有 100 万个活跃连接,每个连接都有 keepalive 超时定时器。如果用最小堆管理这些定时器,每次新连接到来都要 O(log n) 插入——100 万个定时器意味着 20 次比较。时间轮用 O(1) 解决了这个问题。