一面:吹水聊天,聊AI,聊发展 无手撕二面:实习深挖+少量八股拷打+简单题手撕把接口响应延迟优化到 150ms,具体做了哪些事情?原来业务有哪些性能瓶颈?做了哪些优化?150ms 是怎么压测出来的?用什么工具?TTS 服务核心是不是两步:文本预处理 → 音频处理?在这两步里,挑一个效果最好的优化点详细讲讲。你说的分级内存池、四个内存块,具体是怎么设计的?这些音频处理是在 TTS 服务内部,还是调用第三方服务?接口输入是一句话、一段话还是长文本?四个内存池是对同一个接口内的数据拆分,还是不同请求之间共用?内存池主要优化的是不是 GC?优化前接口延迟大概多少?(你回答 600+ms)这个接口应该是核心接口吧?之前为什么没人做优化?全双工 / 流式方案是你自己设计的,还是团队讨论的?你参考了哪些友商方案?三、项目:Redis ZSet 实时积分排行榜用 Redis ZSet 实现实时积分排行榜,详细讲一下场景和结构。为什么不用其他结构,而用 ZSet?举个例子:一个用户原来第 50 名,加分后升到前面,ZSet 是怎么实现的?动态更新排名、动态抓取排名的原理是什么?Redis ZSet 底层用什么数据结构?跳表怎么实现排序?详细讲一下。一个节点分数更新后,跳表是怎么把它挪到新位置的?如果让你自己实现一个有序列表,怎么做?用户量很大时(比如千万级),链表从头遍历效率低,怎么优化?四、登录模块实现(JWT + 短信验证码)讲一下你项目里登录模块大概怎么实现。前端每次请求带 token,你怎么验证 token 有效、是否过期、是否被篡改?JWT token 里面编码了哪些信息?token 过期后,用户还在活跃,会不会刷新 token?怎么做无感续签?JWT 是对称加密还是非对称加密?token 被中间人截取,有没有可能被篡改伪造?五、缓存三大问题:穿透 / 击穿 / 雪崩讲一下缓存穿透、击穿、雪崩的区别和场景。项目中遇到过哪些?分别用什么手段解决?防止缓存击穿加锁,会不会导致性能下降?怎么权衡?六、算法题写一道简单题:判断一棵二叉树是否对称。 -秒了二面后3小时官网显示挂