轻作



重拾写作的乐趣

Erlang持久对象(Persistent Term)

2020.03.04

持久对象(Persistent Term)是OTP-21.3之后引入的, 它的get是非复制(Copy)的

persistent_term_get_1 lookup get_bucket

ETSget是复制(Copy)的

ets_lookup_2 db_get_hash build_term_list

在游戏服务器里面, 配置表通常会用ETS或者beam进行热更新, ETS每一次get都会复制, beam每一次调用, 也是要重新构造一份数据的。如果你使用OTP-21.3之后的版本, 可以结合持久对象(Persistent Term)做成OOP那样的单例模式, 进一步提升计算性能和降低内存消耗。

参考Erlang博客

Clever use of persistent_term

发表评论