阿里智能信息部-- 研发工程师C/C++--二面
1、自我介绍
2、介绍两个项目+一个实习
3、介绍聊天服务器项目具体做了什么,和原项目对比有哪些差异或改进
4、具体怎么实现负载均衡,面临什么问题,怎么解决,最后实现了什么效果(nginx具体用了什么负载均衡策略,怎么实现的)
5、实习项目:原本就有,为什么要做这个东西;那你新的这个日志库主要实现的核心目标是什么;实现的难点是什么
6、压缩用了什么压缩算法,为什么用这个,对比了哪些压缩算法,具体对比了哪些指标,这些指标你测出来具体是多少
7、有没有考虑过边写边压缩,如果要实现怎么实现,会有什么问题吗
8、这个项目中还有遇到什么困难的问题,怎么解决的
9、如果文件创建失败,你怎么处理的;如果已经上线了,你怎么去发现这个问题,然后怎么去处理优化呢
10、你这里有多个线程,会不会有竞争问题,会不会在写时发生错乱;具体有哪些并发冲突,你怎么加的锁
11、如果压缩到一半,或者删除到一半,宕机了,再回来怎么处理这个文件
12、shared_ptr,如果有两个线程,一个去写,一个去取,会有并发问题吗,为什么会有,具体是什么问题,底层原理是什么
13、vector扩容怎么做的,为什么有的系统是1.5倍,有的是2倍,是基于什么样的考虑
14、vector是线程安全的吗
15、什么是缺页中断
16、页在操作系统中是怎么管理的,为什么要使用多级页表
17、操作系统怎么减少内存碎片的产生,具体策略有哪些
18、内存泄漏是什么,你怎么查,这些工具具体的实现原理是什么,怎么去跟踪内存分配操作的(内存钩子)
19、虚函数和模板实现的多态有什么区别