【 以下文字转载自 Programming 讨论区 】
发信人: davidmalone (david), 信区: Programming
标 题: 互联网公司面试深度和工作时具体难度
发信站: 水木社区 (Wed Dec 11 09:28:39 2013), 站内
网上看了一个腾讯后台开发面试经历,去下
感觉很多都是一知半解
话说互联网后台开发社招难度都有这么大吗?
问一些库或者函数的实现什么的
这些在后台开发中很有用吗?不了解就开发不了?
求解惑!
________
1.内存池算法。
我就把前段时间看到的tcmalloc实现大概写了一遍。
Q:malloc怎么实现的?
A:通过brk,sbrk实现的。
Q:sbrk,brk怎么实现的?sbrk,brk怎么由内核态切换到系统(用户?)态的?
2.怎么定位内存泄露?
我写的是:
1.使用valgrind --这个东西从来没用过
2.mtrace
3.封装malloc,free函数的宏
5./proc/$pid/下的内存相关的文件,监控里面的vss(RSS?忘记是哪个了)的变化。确定是那个进程或线程的vss增加,然后走读进程或者线程的代码。
3.tcp为什么要第三次握手,time_wait是做什么的?
我写的是:
第三次握手是client对server的ack回应。time_wait是为了解决2msl的,什么什么幻影镜像。
4.strace什么什么cgi。 (cgi不会,所以只记得strace)
Q:strace怎么实现的?
A:ptrace
Q:ptrace怎么实现的?
5.ip如何在A,B地址间路由?
6.tcp/ip有几种状态,现场划出所有的状态转换图。
哪里记得这么多,都是netstat看到不懂的状态,然后翻书看状态转换图的。
7.有一张表,表结构如下
序列字段(主键,序列号),
后面的字段记不清了。
当这张表达到1000万数据量时,怎么优化,提高存储性能。
8.虚函数是怎么实现的?
虚函数的n年前研究过啊,当时还记得特意做实验破坏虚函数表来着。面试时就什么都不会了。
9.stl map是怎么实现的,时间复杂度是多少? --这道题,难道要通读<<stl源码剖析>>
10.还有一道服务器负载的题,不会,所以也没记住。
电商的面试官都这么牛,这还是俺第一次遇到这么有广度,有深度的面试,不过也特打击我了。请问各位大侠,该看什么书,才可以搞定这些问题。
其他部门也面试过了,问的问题都相对简单,就电商的特有难度,特有广度。
再补充一个:
11.release和debug版本程序有什么区别,debug信息存储在哪里(提示elf文件)?
--
FROM 85.170.225.*