2点钟面试 12点就出发了,在首创大厦找了好久 像定向越野一样
面试官和我差不多大,面试总共花了一个小时,最开始就是简单做个自我介绍然后开始问项目相关内容,最后留了20分钟问基础数据结构和操作系统知识。
1、项目相关:
项目部分我主要做的是环形数组双哈希表比对,里面的哈希表还有环形数组都不是我写的,所以被认为工作量很少 此话不假 - - 一直在原地打转还没深入下去被鄙视了..
这部分问主要遇到了什么问题,说是遇到了网卡Rec-Q满的情况,后来发现是解析包那个CPU压力太大了就用了多个线程解决这个问题。
问是怎么发现问题在这儿的?
调试工具是什么?(我回答GDB)
用GDB调试多线程应该怎么调?
网卡带宽是多少的?
CPU压力那个有没有深究原因?(我说定位到了解决了问题就没再深究,CPU分组,组间竞争,组内竞争这些)
程序没有正常执行的时候CPU的使用情况是怎么样的?
数据分析部分双哈希表各分配了多大的内存?
环形数组不加锁是怎么实现的?
环形数组同时读会不会有问题?
环形数组一个读一个写是互斥还是同步?
2、基本数据结构和操作系统:
什么是堆什么是栈,堆栈在程序执行的时候的存在分配方式?
使用基本的数据结构实现一个有优先级的队列功能的东西,说说时间复杂度(我感觉是排序)?
什么是临界区,临界区有什么用?
总结下:
1、基础知识薄弱,操作系统 ≈ 0;
2、系统工程师考察对系统的深入认识比较多,要知其然和所以然! 多像罗老板学习高性能计算呐呐呐
最后我问他他们系统工程师都是做什么的,他说开发系统平台和网络平台,所以系统性能上的微弱提升都是整个系统的一大进步。
面试官人还是不错的,最开始没找到路找他打听路线,后来回到学校没找到卡以为丢在哪儿了又找他帮我寻找卡...
Mark 一下 lifengli