某公司电话面试
Posted bzadhere
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了某公司电话面试相关的知识,希望对你有一定的参考价值。
电话面试太匆忙,惨不忍睹。。。。
1. 如何查看某个进程中的线程数
ps -T -p <pid>
top -H -p <pid>
2. 如何查看单个进程I/O信息
vmstat 只能看磁盘
iotop 进程I/O
pidstat /iotop 查看单个进程
3. 如何查看某个进程实时I/O网络信息
iftop/nethogs 网络流量
iperf 网络测试工具
第三方库
4. 内存池/线程池/链接池 的实现
http://www.cnblogs.com/bangerlee/archive/2011/08/31/2161421.html
5. skip list
6. map 和 hash_map 区别
构造函数。hash_map需要hash函数,等于函数;map只需要比较函数(小于函数).
存储结构。hash_map采用hash表存储,map一般采用红黑树(RB Tree)实现。因此其memory数据结构是不一样的。
https://blog.csdn.net/vking_wang/article/details/14166593
7. 内存溢出不借助工具
重点排查以下几点:
1.检查对数据库查询中,是否有一次获得全部数据的查询。
一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。
这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,
数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
2.检查代码中是否有死循环或递归调用。
3.检查是否有大循环重复产生新对象实体。
4.检查对数据库查询中,是否有一次获得全部数据的查询。
一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。
这个问题比较隐蔽,在上线前,数据库中 数据较少,不容易出问题,上线后,数据库中数据多了,
一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
5.检查List、MAP等集合对象是否有使用完后,未清除的问题。
List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。
第四步,使用内存查看工具动态查看内存使用情况
8. 摔杯子问题
以上是关于某公司电话面试的主要内容,如果未能解决你的问题,请参考以下文章
待业将近一个月,晚上11点接到面试邀约电话,我却拒绝了...