加载中
C++ 寻找最短路径

一次和同事讨论如何在很多有效点中找到一条路径可以从指定有效点,走到方格最下面的点。此处介绍一下何为有效点,在一个有很多小方格组成的大方格中,每个小方格都有一个特有的属性,1表示白...

2016/08/15 15:26
1.3K
排行榜功能的思考点

%% 算法设计需要考虑的点 %% 能够解决业务问题,高效(大流量应用)稳定(稳定体现在哪些方面呢?不会因为数据量太大,导致效率变差) %% 确定算法的选型和数据结构的选型 %% 全面分析任务对数据...

02/26 12:11
89
关于排行榜算法的处理

使用场景 玩家战力排行榜,可以实时的同步排行榜的信息,排行榜的数量设定为200条,玩家战力变化,可以及时在排行榜中体现出来,相应的排名也发生变化,并且可以不用提前进行数据的排他性处理...

网络分包粘包MTU和MSS之间的关系分析

IP分片在传输层上,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,还剩1500字节,这个大小称为MTU(最大传输单元)。如果你的IP包大于1500字节,IP层就会分片了...

02/09 16:19
347
Erlang要搞清楚的问题点

binary:copy的使用 有时候我们需要切分二进制,提取原始二进制中的某些部分的二进制,这会导致原始二进制也会被引用计数,导致原始大的二进制无法及时的被gc。此时就需要使用binary:copy来拷...

2021/12/24 09:20
103
erlang ets中safe_fixtable的用法分析

该方法主要使用在通过迭代的方式下遍历整个的ets数据 如使用ets:next()或者ets:match_object方法或者ets:select方法迭代的遍历整个ets数据 作用 如果出现数据的删除,可以平滑的处理这些迭代...

2021/12/23 18:19
298
MMOARPG游戏断线重连机制的实现

原因 总原因:网络波动频繁 1.弱网(2G,3G),网络波动 2.游戏切出(打电话,切后台或网络切换,进电梯等等) 3.客户端断网 4.可能的服务器维护或者异常退出 会存在的问题 高延迟 处理不好造成用...

2021/12/22 20:30
1K
Erlang ets safe_fixtable的源码分析

使用范例 在遍历的时候进行ets处理,如删除,更新,插入字段内容等 配合ets:first和ets:next的迭代器使用 实践例子 mnesia的使用 httpc的使用 snmpm_net 使用 dets ets自己的foldr使用 作用 ...

2021/12/22 13:52
62
未来要具备的能力

高并发 秒杀系统,拍卖系统,万人同服在线 大数据处理 大世界对象(SLG),战斗,AOI等 网络技术 协议加密和发送 协议接收和解包 弱网处理技术设计 短线重连 数据库存储设计 服务器扩容设计 监控...

2021/12/17 14:00
134
服务器开服和关服流程

开服流程 1.配置导出 2.application:start(Module)启动 3.各个app模块的start(StartType,StartArgs)调用,各自模块的启动 关服流程 1.application:stop(Module) 2.各个app模块的pre_stop(St...

2021/12/17 13:46
99
Erlang 编码规范

数据的修改统一管理,不要分散 尽量使用tuple不要使用list ets的匹配使用match/match_object,而不是使用select ets遍历使用ets_match_object的迭代遍历 主要++操作,是左边遍历,最好将小列...

2021/12/17 10:44
97
查找内存泄露的一次实战

通过top查看占用做多的beam进程 通过进程id3462查看进程启动信息 命令:ps -aux|grep beam 找到启动文件,节点名和cookie信息 remsh 对应的节点 erl -name test@127.0.0.1 -setcookie cookie...

2021/12/17 10:05
101
广州游戏公司技术

诗悦 业务数据库使用dets,mesina/mongo;log日志用kafka 没有使用mysql,之前用mysql评测有并发瓶颈,所以换用dets/mongo 网易阴阳师 数据库使用mongo+redis......

2021/12/16 09:53
132
Erlang 常见问题汇总

节点的进程莫名的断开了,如何排查 1.是否有错误信息 2.查看terminate信息,如何没有检查是否没有设置trap_exit,true 3.对handle_call,handle_cast,handle_info增加try_catch,确认报错堆栈 ...

2021/12/15 17:44
41
数据库问题汇总

为什么mysql字符集需要使用utf8mb4 utf8编码可能是1,2,3,4个字节,但是mysql的utf8的utf8编码只能支持最多3个字节的数据,而emoji表情字符是4个字符,如果直接采用utf8编码数据的数据库中...

2021/12/15 09:47
42
MySql的索引机制

mysql引擎 物理存储格式 compact: SHOW TABLE STATUS 存疑 每一次插入数据时,是不是都要重新对所有的索引树设置? 叶子节点的数据时保存在哪里的,内存中?如果没有找到数据,要如何去磁盘...

Erlang GUI常用命令

xc(Module) :热更代码 inet:i():查看当前的网络连接状态 observer:start():启动管理器 im():打开代码调试 rr(xxx.hrl):导入头文件 -crashdump_viewer:start(). :查看dump文件......

2021/12/14 09:55
67
Erlang 服务器万人同服排行榜设计优化

测试数据 结论:可以看出使用计数排序,可以极大的提高排序的效率,相比全排序提高3-4倍的效率 测试环境 erlang23.3 性能优缺点分析 计数排序的好处是当数据变化时,只需要对增加的分片进行排...

2021/12/12 18:48
159
Erlang list和map的比较

最佳实践 比如排行榜数据,涉及到同一个玩家多次数据的更新,可以使用map来处理 此处存疑 在maps_get的处理中,如果检测到maps不是flatmap,则执行的是1的插入,如果不是,则执行遍历的方式,...

2021/12/11 19:40
188
Erlang细节设计

随机数生成 1.设置随机种子 random:seed(),获取随机值 2.random:uniform() %% 代码设计 rand(Min, Max) -> case get("rand_seed") of undefined -> RandSeed = mod_rand:get_seed(), ......

2021/12/11 12:20
41

没有更多内容

加载失败,请刷新页面

返回顶部
顶部
返回顶部
顶部