Erlang游戏后端面试相关

先浅谈一下erlang。首先erlang确实是门高效简洁的语言。erlang在国内主要是做游戏和消息通宵这两块。其中游戏撑起了一大片天,不乏很多游戏公司去名校校招。然而谁都没听过它,故此校招方面笔试面试题都是c c++ java的基础题和算法题,只要基础一般能抗压就能过。社招方面游戏的话都是一些erlang的问题(下面会列出一些)和抗压(懂的自然懂)方面的了解,一般有点erlang经验的话工作还是很好找的,如果不会erlang之前是java c++游戏后端的话大一点的公司也接受转。社招如果是做消息通讯的,会erlang是绝对的加分项,更多要求的是对各种协议原理代码优化方面的,收别的语言转erlang的挺多。欢迎入坑。

(这里主要是提出问题,答案其实都能搜到,面试官也会随机引申问题的,关键是能不能得到他想要的回答)

1.笔试题

一般erlang游戏公司是不会让人做题的,但是还是有几家,题会出几道c基础题,然后叫你用erlang实现二叉树 链表等数据结构,用erlang实现排序算法等,照着c翻译过来就行

2.OTP相关

必问的一块。常见的有问四大行为是哪些,常用场景是什么,会问一点相关函数的常用参数选项(一般就到这)gen_servery又是四大行为中着重问的。再深一点会问到怎么大概实现这个行为(变态的会让人撸gen_server源码)

3.定时器

定时器的实现方式,erlang:send_after,erlang:start_timer,这两个函数的区别,自己写个loop帧循环检测。把定时器附加在自己进程和单独起一个定时器管理进程的优缺点,哪种定时器一般附着在自己身上,哪种一般统一管理。

4.ets,进程state,进程字典

这是常用的存储临时数据的三种方式,各自优缺点 ,效率。ets的参数选项。

5.发送消息的方式

!,跨进程通信:erlang:send(Dest, Msg), erlang:send_after(Time, Dest, Msg), 
        gen_server:cast(pid(), Msg), gen_server:call(pid(), Msg).
跨节点通信:erlang:send({RegName, Node}, Msg), erlang:send_after(Time, {RegName, Node}, Msg), rpc:cast(Node, Mod, Fun, Args), rpc:call(Node, Mod, Fun, Args).

6.二进制匹配相关

一般是让你取出第几个字节的数据,类似这种匹配就行<<_:2/binary, Char:1/integer, Int:31/integer, _>> = Bin.

7.递归

1加到100写个递归函数之类的

8、调试程序的方法

主要是打印控制台输出调试。还可以转储存文件,使用错误记录器,idea编辑器的话还可以断点(没用过)

9.排查内存 定位性能瓶颈 优化等

工具有etop cprof等

转:erlang 内存被大量占用,跟踪过程 - hongmao - 博客园

10.热更流程,原理

11.游戏地图机制

九宫格 灯塔等。消息优化,过滤消息,筛选消息,模糊消息等(没必要或者类似重复的消息都删了就能减少很多的消息传递)

12.技能的具体实现

13.服务器出现问题,线上处理流程

保证大部分玩家正常游戏的情况下,查日志 后台记录 反馈问题,和策划商量解决方案补偿方案

14.功能复用性的设计

比如都是类似的签到活动,只是奖励配置不一样。封装成一个行为,在获取奖励的时候重写一下这个回调函数。如果经常变动那就采用MFA的方式。

15.Erlang 的垃圾回收机制原理

16.erlang启动参数

17.跨服怎么设计的

18.合服流程

19.数据库相关

mysql,mongo常见选项和问题。db缓存策略

20.网络相关

如果公司是用ranh cowboy等开源库的话回问一点相关的,如果是公司内部写的会问问基本原理什么的。 

如果是公司要的是业务仔,基本上只会追着你问你实现的功能的具体做法,比如什么排行榜,交易,场景活动等。

最后的碎碎念,看到这已经可以关闭了。erlang确实是挺好的,奈何生活是无奈的。别的语言转erlang是十分容易的,erlang要想转出去就难了。祝大家都能找到一份不错的工作。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值