拿下技术面上传简历

线上一个用哈希表(拉链法)做本地缓存的模块,key 是字符串,稳态约 800 万个 entry,负载因子 0.75,扩容策略是容量翻倍。写入 QPS 很稳定,但监控显示 P99 延迟每隔几十分钟会从 0.5ms 飙到 50ms,之后恢复正常。说说你怎么定位根因,以及打算怎么改。

数据结构与算法线性与树结构1-3 年知识点 1 个

面试官在考什么

判断候选人能否把「哈希表扩容是一次同步的全量 rehash」这个知识点,落到线上延迟毛刺的定位与治理上。

哈希表

回答框架 · 前两步

  1. 根因假设:容量翻倍触发的全量 rehash——一次性重新分配 1600 万个桶、把 800 万个 entry 全部重新算哈希并搬迁,这段在写入路径上是同步阻塞的,直接体现为 P99 毛刺。
  2. 验证手段:给 rehash 起止打点记录耗时;观察毛刺周期是否与 entry 数跨过容量阈值(0.75 × 当前容量)一致;用 CPU profile 看毛刺期间耗时是否集中在 rehash 相关函数。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「数据结构与算法」方向页

同一能力域的其他题