gpt4 book ai didi

netty - Netty HashedWheelTimer 可以处理多少次超时?

转载 作者:行者123 更新时间:2023-12-04 23:05:08 30 4
gpt4 key购买 nike

doc说“每个轮子的默认滴答数(即轮子的大小)是 512。如果你要安排很多超时,你可以指定一个更大的值。”

这是否意味着默认情况下它只能处理 512 次超时?如果我想要 25 秒的 10 万次超时(对于 SockJS ),我应该为每个轮子的滴答数设置什么值?

最佳答案

轮子基本上是一个具有单独链接的哈希表,其哈希函数是“通知时间”。单独的链接是作为一个无界有序集实现的,因此一个轮子实际上可以容纳无限次的超时。

如果您安排的超时时间在遥远的将来(即大延迟)超时,则大延迟将除以 wheelSize * tickDuration ,并将其余数用作超时的哈希值。因此,轮子中的​​当前槽可以容纳将在下一个 tickDuration 内到期的超时。以及将在 (tickDuration * wheelSize * n) 到期的超时ms,其中变量 n将随着计时器线程在轮上迭代而减少。当计时器线程访问插槽时,后者将花费一些 CPU 时间,因为实际上并不是轮到它们过期。 (这类似于传统哈希表中的冲突)。为了减少碰撞的机会,您可以增加车轮的尺寸。

例如,如果您确定安排的大多数超时将在一分钟内到期,您可以使 wheelSize * tickDuration一分钟(例如 600 个插槽 * 100 毫秒)。

有关散列轮的详细信息,请阅读 this .

关于netty - Netty HashedWheelTimer 可以处理多少次超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14250192/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com