0%
字节跳动
- 视频技术面
- 简单介绍自己
- 根据简历提了一些问题
- 手撕代码(单链表交换相邻的两个节点)
- TCP三次握手、四次挥手的过程
- epoll / select的细节
- IO在应用层(用户空间)进入内核空间所做的操作(调度/下文切换/内存拷贝)
- 基础考察
- 你有什么问题想问我的?
华为
- 现场技术面一
- 自我介绍
- 照着简历提问题
- static声明的函数和static声明的变量的区别是什么?
- static声明的变量和全局变量的区别是什么?
- 做项目的过程中有什么让你觉得最棘手的问题?
- 手撕代码(字符串技术问题)
- 现场技术面二
- 自我介绍
- 照着简历提问题
- Open-Channel和LightNVM的示意图、IO通路示意图
- 你做的最有成就感的项目是哪个?
- FIOS的设计算法是怎样的?
- 手撕代码(电梯调度算法)
- 现场综合面
小米
- 视频技术面一
- 挑一个你做过的认为最有难度的项目介绍一下
- 介绍一下lightnvm
- 讲一下IO栈,从VFS开始
- 介绍一下cfq调度器和deadline调度器
- 说一下IO优化有哪些做法(应用程序/文件系统/块层调度器/驱动程序)
- 手撕代码1(数组元素的计数问题)
- 手撕代码2(斐波那契数的递归实现方法)
- 手撕代码3(实现一个简单的memcpy函数)
- 你有什么问题想问我的?
- 电话技术面二
- 首先请自我介绍一下
- Open-Channel这个项目,OC-SSD相对于传统的SSD,提升了多少百分比的性能?
- 源码大约有多少行?
- 你们在上面做的工作是什么?
- 这个项目上面遇到的最大困难是什么?
- 你们是怎么调试内核的?用内核态还是用户态?
- 怎么调试内核core kdump?
- 分布式系统里面,你们的系统参考了ceph的哪些内容?
- ceph用的是crush映射,你们的系统是怎么映射的?
- 你们的分布式系统怎么来查找一个数据?
- 你们的分布式冗余的配置是怎样的?为什么设置这么大的冗余?有必要吗?
- 节点损毁后,怎么进行数据的迁移?
- 调度器这个项目,你们的调度器相对于Noop和CFQ,提升了多少百分点的性能?
- 你们的调度器在延迟上,相对与其他调度器,降低了多少百分比的延迟?
- 你们怎么来测调度器的性能提升了多少?用什么方法?为什么用这的方法?听过block trace没?
- IO栈,从系统调用开始,经过哪些路径?(你这个太快了,映射和page cache都跳过去了)
- 好吧就这样吧,你有什么问题想问我的?
海康威视
- 电话技术面一
- 先介绍一下自己吧
- 简单介绍下分布式系统和调度器
- std::vector的内存管理存在哪些问题?
- C++11了解多少?共享内存了解吗?让你设计一个auto_ptr你会怎么设计?
- std::string的内存是怎么管理的?
- 让你设计内存池你会怎么设计?
- 怎么优化内存池?内存池和malloc相比谁的性能更高?为什么?
- 多线程有哪些问题?是否会影响性能?
- 怎么来优化多线程以提高性能?
- epoll / select了解吗?网络编程了解多少?
- 你有什么问题想问我的?
OPPO
- 现场技术面一
- 自我介绍
- 根据简历提了一些问题
- 梳理一下内核IO栈
- 带了成绩单没?
- 讲讲计算机体系结构有哪些组成部分,软件的硬件的?
- 为什么要优化调度器,CFQ在SSD上为什么不行?
- 闪存的读比写快有具体的测试数据没?
- 你有什么问题想问我的?