败犬日报 2025-12-26
败犬日报 2025-12-26
1. hazard_ptr 是不是必须用 seq_cst 来避免 WR 重排?
folly 的实现采用 seq_cst,但是标准库的描述没有这个 seq_cst。
按道理说 acq-rel 是没法建立 RWR 同步的。
2. 哈希表碰撞问题在生成环境影响大吗
很大。hash 质量再好,都兜不住大 bucket 冲突问题,生产环境的 burst 流量可能同时打到同一个 bucket 造成部分请求抖动 / 长尾很严重。
上生产的东西,就看平均情况,还有 P99。而且用户体量大了以后,这部份 1% 会被基数放大,影响的是一个巨大群体的用户体验,所以生产不能忍受这种情况。
3. std::list::size() 在 C++11 后复杂度变成 O(1)
原来是 O(n),C++11 后可以保存一下 size,并在插入删除时维护一下就可以 O(1) 了。
由于 splice 部分情况下线性复杂度,仍然可以维护 size。(所以 size O(1) 和 splice O(1) 是不能共存的)