扯淡之erlang生涯 -- 持续更新

本文分享了作者在游戏行业使用Erlang进行开发的心得体会,包括选择Erlang的原因、学习过程中的感悟以及对几种数据结构性能的对比分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实习erlang有两个月了,既然选择了从事erlang,那就好好的走下去。

游戏行业人心浮躁,静下来学习真心不容易,还好对erlang非常感兴趣。

某一刻我在想,这一行就像武侠江湖,如果没有一两式绝招难以震江湖,

我也不甘平庸,拿着一点薪水每天只能重复无味的业务工作。

职业生涯之所以选择erlang,并不是为了游戏能有多发展,而是深深的被

它的分布式高并发所吸引,因此放弃了专攻Java的netty,选择拥抱erlang。


决心做一件事,多少会有人质疑你的能力,并给于衷心的建议,当我选择

深入mnesia,自己也都觉得很狂妄。不过我会很踏实的去干,mnesia是

erlang的多个应用组合,逐个应用击破,我就不信破不了  

(2014年11月10号)

lists函数底层实现总结,很多人看完底层实现就觉得自己会lists应用,我觉得

不是这样,学会使用和性能分析只能说会了40%,只有真正意义上明白lists的

函数封装的思想,这应该需要长期的训练,日常编写的代码尽量朝这方面思考。

如果编写的代码,能把底层和业务分开,这样的一段代码才是正能量的好代码

(2014年11月15号)

看完了ets的用法,我再不在相信项目优先用state还是ets,具体的还是需要看

业务的需求,定制策略然后选择合适的数据结构,一般来说公共的数据可以使

用ets来保存,比如说抢购实时排行等。ets的效率也是非常的高,底层的实现

都是一些复杂优秀的数据结构,查找和删除的都是O(lgn)性能。ets是实现单点

写,多点读的首选数据结构。

(2014年12月3号)

gb_tree 、gb_sets 底层是其实是一颗平衡树,查找和插入的性能都是o(lgn),

lists 插入O(1)查找O(n)。dict插入是O(1)查找O(n/16)。 对比这三种数据结构,

在业务的场景的选择,可以结合业务的需求通过计算性能期望,选取最优结构。

(2014年12月6号)

很久没有作总结了,必须纠正上次总结dict,dict是动态哈希的结构,查找的和

删除的性能均为O(1), 但是需要注意:每次一个槽满了以后,它都是需要去做

均衡,所以性能就降下来了,dict适合小数据,网传的分布式算法就是dict模型。

近期还研究了各种随机算法,走了一波弯路,又回到原点,游戏中的数据量都是

比较小,例:100个物品中随机10个,测试一番后,最暴力的方法确实最优的解。

关于附近的人(地理系统),geohash算法乱搞一番,我的博客上有介绍处理方案。

近期看的最比较爽还算上是平衡树、B树、B+树、红黑树,还算是弄明白了。终

于知道 索引 是如何实现的了,网上的文章很多,都能看的懂,不介绍了。

最后贴上近期的任务书吧,11月28~12月28在学校考试,迄今为止实习有三个半月了,

手上一大波 offer 争取在6月毕业前有突破。加油!-----2015年2月1号

-----------------------------------------

刘志刚(刘志刚) 09:47:26
加快一下熟悉服务器代码的进度,掌握所有的代码和框架
1.10  boss系统(完成)
1.11  gb_trees(完成)
1.12  gb_trees(完成)
1.13  聊天 邮件(完成)
1.14  排行榜(完成)
1.15  竞技场(完成)
1.16  定时器(mod_timer 半天)[附:缓存包处理、队列](完成)
1.17  公会[附:动态哈希dict](完成)
下周
1.19  日志系统(mysql和lager) (完成)
中途:各类随机算法对比、geohash(地理系统)、平衡树、B树、B+树、红黑树、礼包业务(全部完成)
1.20  任务
1.21  好友推荐
1.22  系统公告 (完成)
1.23  组队 (完成)
1.24  副本(这块给3到5天)

-----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值