gpt4 book ai didi

linear-programming - 使用指数退避有什么好处?

转载 作者:行者123 更新时间:2023-12-01 16:45:40 27 4
gpt4 key购买 nike

当代码等待某些延迟时间不确定的条件时,看起来很多人选择使用指数退避,即等待N秒,检查条件是否满足;如果没有,则等待 2N 秒,检查条件等。与检查恒定/线性增加的时间跨度相比,这有什么好处?

最佳答案

当同时尝试做某事会相互干扰而导致没有成功时,指数退避很有用。在这种情况下,让设备在太小的窗口中随机尝试操作将导致大多数尝试失败并必须重试。只有当窗口变得足够大时,尝试才有可能成功。

如果事先知道有 16 个设备想要通信,则可以选择最适合该负载级别的窗口大小。但实际上,竞争设备的数量通常是未知的。指数退避(每次重试时窗口大小加倍)的优点是,无论竞争实体的数量:

  1. 大多数操作成功的窗口大小通常在大多数操作成功的最小窗口大小的两倍以内,

  2. 在该窗口大小下失败的大多数操作将在下一次尝试时成功(因为大多数早期操作都会成功,这将使不到一半的操作竞争两倍大的窗口) ),以及

  3. 所有尝试所需的总时间最终仅为上一次所需时间的两倍左右。

如果窗口不是每次都加倍,而是简单地增加恒定量,那么在窗口达到可用大小之前重试操作所花费的时间将与所需窗口大小的平方成正比。虽然最终的窗口大小可能小于指数退避所使用的窗口大小,但所有尝试的总成本会大得多。

关于linear-programming - 使用指数退避有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28732327/

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