4.10 4399一面面经 25春招C++游戏开发工程师

之前海投打开4399官网,结果没有暑期实习,但想着打都打开了,就投递了。

这是我 腾子之外第一个约面的公司

===

一面25min
面试官反馈很好,很认真

1. 聊项目
第一个项目 聊天服务器
reactor 和 proactor 区别
epoll原理,为什么会有高并发呢
select,poll,epoll区别;如何快速处理的呢?
边缘触发和水平触发的区别 (EPOLLONESHOT,我要放置多个线程处理同一个文件描述符(假如又发生了IO呢))
线程数量怎么确定的?会动态涨吗,比如任务特别多的时候?
有压测过吗?(500QPS)
聊细节,1W个连接能保持吗?(答得很迷,答现象就行,面试官没有为难)

第二个项目 日志器
怎么写的 (双缓冲区)
数据怎么同步的
智能切换缓冲区什么意思 ,效率怎么测的
双缓冲区会卡住吗,日志来的太多太快怎么处理 (阻塞)
有日志级别吗,怎么做的,在不同文件吗,就是head不一样? (不同的宏函数:fatal_log,info_log)
文件有错误,或者磁盘写满,日志落不了地如何处理?

2.发了个结构体,问32位机器下的 size

class A{
public:
int f1;
static int f2;
int func1();
virtual int func2();
};

sizeof(A)

(虚函数指针刚开始没答,面试官提示了)

64位机器下呢?(再次提示,有内存对齐)

3. Linux 系统 用什么命令检查有哪些连接?有哪些命令可以检查网络聊天状态,端口没有监听怎么办?
(不常用,用的时候会查)

4. 讲一下套接字网络服务器从启动到关闭会执行哪些调用(关闭答的不清楚)

5. 服务器崩了的情况 (JSON {} 匹配,压测粘包)
会直接挂掉吗?(不会)

6. 服务器解析的JSON吗 (我现在用Protobuf)
二者有啥区别,一个是二进制的一个是JSON是吧?

Protobuf的压缩原理清楚吗?(看过int的重新编码)

包是固定的吗? (K-L-V,key后续可以拓展其他协议)

7. 有没有用过内联函数?

8. 有什么想问的?
(我实习入职,会做什么?)
先做简单的业务,服务器开发的话,实现玩法战斗流程,活动什么时候开,伤害计算,protocbuf
慢慢熟悉上手

过了,4399 二面是hr面#牛客AI配图神器#
全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务