阿里云 阿里云智能-可观测 一面面经
投递筛选过程
boss 直聘上投递的,2.18约的这周四 (2.28) 面试。结果今早阿里云开了校园招聘,我跟随群友的步伐,二话不说先投再说,结果投成了别的部门。最后还是接头人帮我联系后台改了下投递的部门。才顺利进行面试。(在此悄悄给接头人说声抱歉,额外麻烦他,挺不好意思的🥲)
2.27 一面
自我介绍,简历介绍。
项目/比赛拷打
你这是分布式分布式项目吗?答:和传统的分布式确实不太一样,主要是搞文本协同的,然后扯了点分布式处理请求的好处巴拉巴拉
你这个主要是面向什么场景?答:文本协同,多人编辑
我看云侧解决冲突用到了类git的分支处理,能详细说下吗:答:太多了,略过
比赛相关
你们的具体方案怎么想出来的?
答:有指导老师+队友之间讨论,答得不好,面试官应该想听用perf进行性能分析那一套,但当时太紧张,没想起来。
数据库
你是搞数据库的,说下研究生学数据库方面的收获?
答:对数据库的具体执行流程更加清晰了,然后说了下查询具体执行流程,感觉说的不好,太乱了
数据库的优化器有了解吗?介绍下工作机制
答:说了下基于cost的优化
你上面说的正式名称是啥?(cost-based优化)还知道其他优化方法吗?
答:还知道基于机器学习的优化方案(没自信,应该答基于规则的)
阐述下数据库的聚合函数+group by的具体执行过程
答:基于火山模型,每个算子都向上暴露一个next函数,group by下面的是全表扫描,通过全表扫描算子获取表数据然后一层一层向上传递阿巴阿巴。这个答得很不好,聚合实现的关键点我给忘了,说的也很乱,也没太想明白面试官要问啥
计组+操作系统
(没想到竟然会问计组,这不是嵌入式该问的吗?流汗)
我看你学过计组,简单介绍下cpu流水线?
答:先说了没流水线,cpu一次只能执行一个指令,然后说流水线引入后,cpu各个组件能近乎并行运行指令。然后扯了下SIMD和VLIW
你用过SIMD指令吗?
答:用过,写了一段关于向量的乘加SIMD运算
简单说下操作系统的内存管理?
答:太多了,略,主要阐述核心就是方便进程使用内存。具体可以看操作系统的虚拟内存管理相关八股,扯了下segment fault的原因
进程与线程的区别?
答:经典八股
进程切换具体保存啥?
答:cpu的寄存器信息,堆栈信息,以及页表信息,感觉没答全
你说你用过postgresql, 问下pg的运行模式是多线程还是多进程?
答:多进程,印象深刻
有主动了解过为啥pg采用多进程吗?
答:没有了解过.
调试+gdb
你遇到上segment fault 是怎么调试的?
答:gdb+打印+assert 断言
(面试官不满意,继续问)如果程序很长时间运行,遇到segement fault 怎么办?
答:愣了下,说用.core文件记录崩溃前进程运行信息,等程序崩溃后,用gdb复现程序运行过程。
gdb想查看内存信息,用啥指令?
答:记得用x指令,但是没敢答
那你用过gdb哪些命令?
答:懵了,只记起来简单的程序控制指令和print,bt
那我想输出一个函数调用时的寄存器信息用啥?
答:reg(reg是查看所有的寄存器信息,幸好面试官没问具体的怎么看)
场景题/思维题?
两个文件a和b,文件每行是一个128KB的字符串,文件大小是100G,如果在4GB内存的机器上找出两个文件中存在的相同字符串?
想到的第一个方案是a先读取一段进内存,然后遍历b所有内容找相同字符串输出,重复这个操作。面试官说这性能太差,继续
第二个方案是先排序(磁盘归并排序)a和b,然后双指针去比较。面试官说这样也可以,但是还有提升空间(流汗黄豆)
第三个方案最终憋了快5分钟,用hash分桶,每个桶对应一个文件,然后桶与桶之间对比。这个面试官挺满意的,但是期间感觉他已经等得不耐烦了。
(面完回想了下,这不就是15445讲的join的三种实现方法吗?真后悔面前没复习15445的内容)
算法题
无重复字符的最长子串
(简历上写了拥有良好的编码规范,结果面试官说 “我看你简历写了你有良好编码规范,写代码的时候体现一下吧"。我:。。。)
反问
能进二面吗?(过于直白)
部门的主营业务?
我有什么需要解决的不足吗?
面试官:简历错别字有点多。
#c++方向##阿里云##面经#