Erlang中文论坛

标题: 临时数据的存储方式选择 [打印本页]

作者: NESS    时间: 2015-3-25 11:24
标题: 临时数据的存储方式选择
在不断的接触并熟悉项目代码之后,发现项目中对于临时数据的存储所使用的方式并不是唯一的。
Erlang存储临时数据的方法有多种,个人接触到的有如下三种:
1.          进程字典
2.          ETS表
3.          把数据保存到记录中
进程字典是进程的私有数据存储,它是由一系列键值对组成的关联数组,一个键对应一个值,当进程消失时,数据也会随之丢失。
ETS向我们提供了大型的“键-值”搜索表,它实际上就是一系列的Erlang元组,当表释放时,数据也会丢失。
记录把名称与元组中的元素一一对应起来,它在本质上仍旧是元组,记录属于创建它的进程,当进程消失时,记录也会被清空。
进程字典存储在内存之中,速度相当快,但是不可以被其他进程读取,当进程所使用的数据与其他进程没有关联时,可以使用进程字典来存储数据。反之,当进程使用的数据与其他功能进程有联系时,则应该使用ETS表或者记录,ETS表属于创建它的进程,但是它的默认类型为PROTECTED,别的进程虽然不可以修改它,但是可以读取其中的数据,记录可以被任何进程读取,但是有可能影响运行效率。


作者: youke    时间: 2015-5-23 18:09
你好,”记录“是什么?能详细说一下吗?我所知的erlang的记录只有record,而它本身只是一个数据格式,并不能用于临时存储。
作者: 茶叶feng    时间: 2018-6-27 23:28
youke 发表于 2015-5-23 18:09
你好,”记录“是什么?能详细说一下吗?我所知的erlang的记录只有record,而它本身只是一个数据格式,并不 ...

大兄弟。。。英语老师死得早呀。。。




欢迎光临 Erlang中文论坛 (https://bbs.erldoc.com/) Powered by Discuz! X3.3