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
45
Erlang ++实现

说明 合并列表,需要将数量小的放在前面,数量大的放在后面,性能会比较好 tatic Eterm append(Export *bif_entry, BIF_ALIST_2) { Eterm lhs = BIF_ARG_1, rhs = BIF_ARG_2; if (is_nil(lh...

2021/12/09 13:58
121
Erlang lists:keyfind实现

static Eterm keyfind(Export Bif, Process p, Eterm Key, Eterm Pos, Eterm List) { int max_iter = 10 * CONTEXT_REDS; Sint pos; Eterm term; if (!is_small(Pos) || (pos = signed_val(P...

2021/12/09 11:29
95
Erlang 代码热更机制

步骤 1.编译代码 2.code:purge模块 1.当前的会保留两个版本,如果第三次编译的时候,会清理最旧的版本,特别注意,如果使用了receive的进程,没有设置after参数,可能导致当前进程被关闭 2....

2021/12/09 10:19
64
Erlang apply函数的实现

Export* apply(Process* p, Eterm* reg, ErtsCodePtr I, Uint stack_offset) { int arity; Export* ep; Eterm tmp; Eterm module = reg[0]; Eterm function = reg[1]; Eterm args = reg[......

2021/12/08 11:51
195
关于功能的数据建模

1.概念模型 2.思维模型 3.行为树需求模型 4.行为树设计模型

2021/12/08 10:06
29
个人能力雷达图

耐受力 任凭风吹浪大,我自岿然不动;工作动力足,心理泰然处之 执行力 说了马上做,做了有成果,动手能力强,认真负责 理解力 有建立规范的习惯,思维活跃,不受局限;多种举措保证对需求或...

2021/12/08 09:26
84
Erlang is_small函数的实现

#define is_small(x) (((x) & _TAG_IMMED1_MASK) == _TAG_IMMED1_SMALL) #define _TAG_IMMED1_MASK 0xF #define _TAG_IMMED1_SMALL ((0x3 << _TAG_PRIMARY_SIZE) | TAG_PRIMARY_IMMED1) #def...

2021/12/07 17:46
78
Erlang iolist_to_binary和list_to_binary的区别

list_to_binary 将列表转换为二进制 iolist_to_binary 将列表转换为二进制,包括参数已经是二进制 区别 list_to_binary不能转换已经是二进制 iolist_to_binary 可以转换已经是二进制 用法注意...

2021/12/07 17:31
76
Mysql的索引机制问题

innodb数据库必须设置唯一索引,如果没有显示的设置,则自动会找出一个唯一值设置,或者设置一个隐含的值作为索引 MyIsam采用的是非聚集索引,也采用b数,叶子节点存储不是实际的数据,而是实...

2021/12/07 11:44
57
服务器数据内存数据查询机制

1.快捷查看进程内存数据,进程信息(内存占用,执行函数),ets数据,日志信息 2.节点通信和rpc/tcp通信的优缺点 3.行为树的设计(综合比较状态机和行为树的优缺点) 4.场景的设计 5.战斗技能的...

2021/12/06 09:42
97
游戏行为树设计

目的 设置机器人ai,进行预定的行为和操作,如走路,攻击,拾取等 行为树的设置是针对单个行为下的可选节点情况,只关心当前节点的状态和下一个要选择的行为 设计思路 创建一棵有分支的树,满...

2021/12/05 10:51
81
Erlang编程规范总结

能用tuple的就不要用list list占用的内存空间几乎是tuple的两倍,tuple有一个头部,4个字节保存tuple的长度

2021/12/03 10:13
60
Erlang lists:reverse实现

具体用法 %% Shadowed by erl_bif_types: lists:reverse/2 -spec reverse(List1, Tail) -> List2 when List1 :: [T], Tail :: term(), List2 :: [T], T :: term(). reverse(_, _) -> ......

2021/12/02 09:49
119
Erlang lists:merge实现探究

问题 lists:merge存在的意义何在呢?不算是全部排序 说明 1.lists:merge函数将两个列表进行合并处理,并进行了排序操作 2.并非全部排序,而是在可以比较顺序的情况下进行排序:如lists:merge...

2021/12/01 19:27
75
Erlang length的c实现

erlang层面代码位置 c层面的实现 /* 文件位置:util.c erl_nif.c enif_get_list_lenght()函数 */ Sint erts_list_length(Eterm list) { Sint i = 0; while(is_list(list)) { i++; list = CD...

2021/12/01 17:48
62
管理者应该具有的品质

遇到问题,需要沉着应对,不可乱了方寸 事后反思:遇到非预期或紧急的问题,查找花了比较长时间,没有结果时,容易产生焦躁,埋怨,换个思路,或者暂时放一放后续再处理,就会发现思路清晰很...

2021/11/26 20:13
67
Erlang数据结构Ets中match/match_object/select的区别

match 用法:获取ets存储数据结构的某几个数据集合 match_object 用法:获取ets存储的符合条件的整个结构,只能支持直接值匹配 用法1:迭代的遍历整个ets列表 match_object/3 用法2:查找指定...

2021/11/26 10:11
269
建立高效团队的经验总结

统一命名规范和术语,提高高通效率,减低沟通成本 防止谁也不知道谁在说什么,对同一个功能有多种名字,特别是在后期,策划频繁改动内容,玩法命名的情况 建立操作流程规范 流程标准化,对某...

2021/11/26 09:59
83
LetCode 做题之两数之和

通过进行三种方式的实现,得出一下结论 使用进程字典进行数据读取,时间效率最高 其次是使用map,时间效率次于进程字典,并且内存占用也次于进程字典 使用尾递归的参数传递,时间效率最低,内...

2021/11/25 11:04
27

没有更多内容

加载失败,请刷新页面