7月30日
1小时
1、自我介绍
2、C++编译过程
3、假如让你自己设计一个编译器,哪些过程是可以并行的,哪些过程是不可以并行的,为什么?
4、哪些情况会产生segmentation fault,说了三种情况(内存越界,空指针,double free,本质是访问了非法内存),面试官说上面都是写代码过程中的错误,有没有什么是系统导致的segmentation fault,这个没太想清楚,答了个申请内存不够可能也会,不太对,现在想想应该是栈溢出?
5、假如让你自己写一个程序,模拟一个core dump,该怎么写?
6、core dump文件调试?你是怎么调试的?gdb是怎么打出函数调用栈的?怎么知道core dump函数的具***置的?具体原理?(不太清楚)
7、GDB断点调试原理,怎么知道在哪个位置停止的?(嵌入int 3中断)
8、加入一台机器上的一个CPU核1秒能够处理1000个请求,现在需要1秒处理10万请求,
该怎么做?(开多个线程)
假如一台机器只有10个核呢?(加机器,买10台机器,搞个集群,分布式的做)
怎么分布式的做,假设数据存储在MySQL数据库中?(加一层redis缓存,把对数据的请求通过hash方式映射分配到不同机器上)
9、提了一嘴一致性哈希,问了一致性哈希和普通哈希的区别(增减机器的时候,数据的失效范围)
上面每个问题都会发散问的很深。。。
代码题:
一个有序数组,有重复数字,给定一个target,找target在数组中的第一个和最后一个位置。
写了二十分钟,太菜了。。。
反问:
1、部门,推荐系统架构的
2、技术栈,主要是C++,少量java
3、对我建议,整体还不错,但是写代码之前要想清楚问题,不是代码写出来就很厉害了,要先想好问题所有边界,想清楚问题是关键。
8月2号收到二面通知,8月6号二面。
全部评论
(7) 回帖