快手-用户增长-秋招面经(库存)
一面
C++:
- 派生类继承基类时、虚函数表内的函数是何时替换的
- 指向派生类的基类指针、强转为
void*
再转为基类指针、此时调用虚函数会发生什么(正常)
Project:
- 使用 perf 排查程序性能的高端经历(例如尽量避免使用虚函数、vector 预定空间避免频繁扩容等)
LeetCode:
- 反转链表
[l, r]
区间内的所有节点、返回新链表的头节点
二面
C++ & Webserver:
- 线程池实现步骤
- 存放线程执行任务的结构体或者类型是什么(
std::function
) - 线程 A 如何向线程 B 发起异步请求并获取到处理结果、接口是什么
- 介绍一下智能指针
- 了解哪些设计模式(单例、工厂、建造者)
- 泛型编程使用经验
Project:
- 为什么要使用 cgroup 进行绑核、有没有了解过其他方案(namespace)
- C++ 中 CPU 绑核的 API 是什么(
sched_setaffinity
) - 如果车端 CPU 开销超过原有的 11 个核怎么办
Scene Questions:
- 按行和按列遍历二维数组在性能上的差异
- 死循环中执行
i++
自增操作后睡眠 1ms、CPU 占用是怎么样的
LeetCode:
- 手撕 shared_ptr
- 平衡二叉树(No. 110)
后续
九月份面的,当时告知二面通过,会约三面,然后就没有然后了。现在还没挂,就挺搞笑的。
#24届秋招同行攻略分享#