面灵AI→

腾讯光子工作室一面:项目描述与 C++、操作系统八股

轮次
一面
时间
2026-10
来源
牛客网

《面试题目》

  1. 请介绍一下你的项目。
  2. C++ 方向的八股题。
  3. 操作系统方向的八股题。

这一面的信息量集中在考察范围上:自我介绍后先讲项目,接着是 C++ 与操作系统八股,具体题目没有披露。下面按这两个方向把常见考点与准备顺序补齐。

《参考解析》

项目描述怎么讲才不浪费轮次

面试官让你「讲项目」,考的是能不能把一件事讲得让别人快速抓住重点,所以不要按开发顺序复盘,而是按「背景—目标—我的职责—技术方案—难点—结果—复盘」组织,控制在三到五分钟。要点有三个。第一,先给一句话定位:项目解决什么问题、服务多少用户或多少数据量、你负责哪一块,让面试官知道该往哪里追问。第二,技术方案要讲选择理由而不是罗列技术栈,比如「为什么选这个存储」「为什么这里用异步」,面试官几乎一定会挑一个点深挖。第三,留一个自己最熟的难点当钩子,提前准备好「当时怎么定位、试过哪些方案、最后为什么这么定、有没有量化收益」;性能数字(延迟、吞吐、内存占用)如果能说出来,可信度会明显不同。游戏岗还会关心你写过的模块是不是自己设计的,所以要分清「我负责」和「我参与」。

C++ 常见八股与准备顺序

光子这类游戏工作室的 C++ 考察通常集中在几块。对象模型:虚函数与虚表、虚析构为什么必要、多重继承下的对象布局与指针调整、构造与析构顺序、能不能在构造/析构里调用虚函数。语言特性:右值引用与移动语义、完美转发、std::move 与返回值优化、智能指针的所有权语义与循环引用(weak_ptr 破环)、RAII 与异常安全、const 与 constexpr 的语义。STL 与容器:vector 扩容与迭代器失效、map 与 unordered_map 的底层结构与复杂度、deque 的实现、分配器与内存池。内存与性能:栈与堆、内存对齐与 padding、缓存友好性、对象池与自定义分配器——游戏场景对分配次数和内存碎片非常敏感,这块问到概率高。编译与链接:头文件与 ODR、模板实例化、静态库与动态库、内联与链接期优化。准备时把每条都练成「是什么—为什么这么设计—什么时候会踩坑」三句话,比背定义有效。

操作系统常见八股与准备顺序

进程、线程与协程的区别与切换开销;线程调度与上下文切换的成本;虚拟内存与地址翻译(页表、TLB、缺页中断、mmap 与零拷贝);进程间通信的各种方式与适用场景;同步原语(互斥锁、自旋锁、读写锁、条件变量、信号量)以及死锁的四个必要条件与排查;IO 模型从阻塞、非阻塞、IO 多路复用到异步 IO 的演进,select、poll、epoll 的区别与水平/边缘触发;文件系统与页缓存;中断与系统调用的开销。游戏方向还会追问实时性相关的话题:为什么不能频繁分配内存、如何减少锁竞争、无锁队列与原子操作的内存序、CPU 缓存行与伪共享。答题时尽量落到「这个机制解决什么问题、代价是什么、我实际在哪用过」,只背概念很容易被下一句追问打穿。

八股之外容易被忽略的两件事

一是手写代码的准备:这一面虽然没记录到手撕题,但游戏客户端与服务端岗几乎都会考 C++ 编码,常考的是字符串与数组操作、链表反转、环形检测、二叉树遍历、简单状态机与内存管理的小实现,练的时候要用 C++ 写而不是伪代码,注意边界与资源释放。二是语言与工程工具的细节:C++ 的编译报错怎么读、怎么用调试器定位崩溃与内存越界(gdb、core dump、ASan/Valgrind)、性能怎么测(perf、火焰图),这些在游戏团队里比八股更贴近日常工作,能在项目描述里自然带出来会加分很多。