设为首页收藏本站

Erlang中文论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 23405|回复: 2
打印 上一主题 下一主题

临时数据的存储方式选择

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

沙发
发表于 2015-5-23 18:09:17 | 只看该作者
你好,”记录“是什么?能详细说一下吗?我所知的erlang的记录只有record,而它本身只是一个数据格式,并不能用于临时存储。
回复 支持 反对

使用道具 举报

板凳
发表于 2018-6-27 23:28:09 | 只看该作者
youke 发表于 2015-5-23 18:09
你好,”记录“是什么?能详细说一下吗?我所知的erlang的记录只有record,而它本身只是一个数据格式,并不 ...

大兄弟。。。英语老师死得早呀。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Erldoc.com  

GMT+8, 2024-12-4 00:46 , Processed in 0.362100 second(s), 9 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表