Tencent/flare

对GetFreeCount的取值比较困惑

yinghaoyu opened this issue · 5 comments

std::size_t GetFreeCount(std::size_t upto) {
  return std::min(upto, std::max(upto / 2, kMinimumFreePerWash));
}
  1. upto > 2 * kMinimumFreePerWash,取 upto / 2 显然大于 kMinimumFreePerWash
  2. 2 * kMinimumFreePerWash >= upto >= kMinimumFreePerWash ,取 kMinimumFreePerWash
  3. kMinimumFreePerWash > upto ,取 upto 显然小于 kMinimumFreePerWash

请问这样取值的意义在哪?L32C1-L32C1

没理解问题,是说觉得这儿有bug吗

不是bug,是觉得为什么要以这个逻辑取值

限制upto是为了避免一次释放太多阻塞太久,设置一个下界是为了避免每次释放太少导致反复跑这个逻辑

谢谢