问题标签 [ets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4720 浏览

erlang - 在 ets 和 mnesia 中哪个更有效

ets:select vs mnesia:select 哪个更好用。而且在插入和删除的情况下,我们应该使用这两者中的哪一个。我正在研究 ejabberd。任何指针?

0 投票
1 回答
3074 浏览

performance - Erlang:ets选择和匹配性能

我发现“功能 ets:select/2 和 mnesia:select/3 应该优先于 ets:match/2、ets:match_object/2 和 mnesia:match_object/3”表单参考链接:http://www.erlang .org/doc/efficiency_guide/tablesDatabases.html

而且我读过一些关于选择和匹配之间比较的文章,我得出结论有一些因素会影响结果,例如表中的记录数量,是否选择/匹配主键,表类型(包,设置... ), ETC。

在我的测试中,我为所有类型的表做 10W 记录和 1W 记录,并且只选择/匹配非主键。

以下代码:

记录如下:#ets_haoxian_template{type = X, count = Y, ...},keypose 是类型。

结果如下:1W测试:

10W测试:

似乎匹配比选择更好?还是我的测试有问题???

0 投票
1 回答
498 浏览

erlang - 使用 ets 函数读取 mnesia 表(erlang)

使用 mnesia 处理 erlang 项目(一些表 ram 副本,一些表磁盘副本,一些表两者)。为了优化某个读取(ram 表),我使用了 ets 查找而不是我一直使用的 mnesiadirty_read,并对例程的两个版本进行了计时。ets 查找比 mnesiadirty_read 快得多。

我的问题是使用 ets vs mnesia 读取 mnesia 表是否有一些“陷阱”或“捕捉”(必须有,否则没有理由让较慢的 mnesia 读取存在)。如果它有任何区别,我不需要也没有使用任何“分布式”或“节点”。换句话说,我现在并且只会在一台计算机上使用一个节点。

0 投票
0 回答
311 浏览

erlang - Erlang ets:insert_new 用于包

在我的代码中,我想利用 ETS 的包类型,它可以为单个键存储多个值。但是,知道插入是否真的插入了一个新值(即插入的带有值的键是否存在于包中)将非常有用。

使用 ETS 类型集,我可以使用 ets:insert_new,但 bag 的语义不同(强调我的):

此函数的工作原理与 insert/2 完全相同,不同之处在于不是用相同的键覆盖对象(在 set 或 ordered_set 的情况下)或使用表中已经存在的键添加更多对象(在 bag 和 duplicate_bag 的情况下) ,它只是返回false。

有没有办法通过一个电话来实现这样的功能?我知道它可以通过查找后跟可选插入来实现,但我担心它可能会损害并发访问的性能。

0 投票
3 回答
1611 浏览

erlang - 我应该如何在 ETS 表中自动过期,同时限制其总大小?

我有很多分析数据,我希望每隔一段时间(比如说一分钟)汇总一次。数据被发送到一个将其存储在 ETS 表中的进程,并且每隔一段时间,一个计时器就会向它发送一条消息处理表并删除旧数据。

问题是传入的数据量变化很大,我基本上需要做两件事:

  • 如果传入的数据量太大,则丢弃最旧的数据并推送新数据。这可以看作是一个固定大小的队列,如果数据量达到限制,队列将开始从前面,因为新数据排在后面。
  • 如果队列未满,但数据已在那里放置了一段时间,则自动丢弃它(在固定超时后)。

如果保持这两个条件,我基本上可以假设该表具有恒定大小,并且其中的所有内容都比 X 新。

问题是我还没有找到一种有效的方法来一起做这两件事。我知道我可以使用匹配规范来删除所有早于 X 的条目,如果索引是时间戳,这应该会非常快。虽然我不确定这是否是定期修剪桌子的最佳方式。

第二个问题是将总表大小保持在一定的限制下,我不太确定该怎么做。想到的一个解决方案是在每次插入时使用自动增量字段,并且在修剪表时,查看第一个和最后一个索引,计算差异,然后再次使用匹配规范删除低于阈值的所有内容。

说了这么多,感觉我可能会使用 ETS 表来做一些它不是设计用来做的事情。有没有更好的方法来存储这样的数据,或者我是否正确地解决了这个问题?

0 投票
1 回答
440 浏览

r - 在 ETS 包中,您可以使用高频 f=365..吗?

我正在使用预测函数..和 ts() ,使用 F=365 ............并且能够看到 gud 日明智的季节性......在 Hyndman 先生的博客中,我读到“我经常被问到如何适应ARIMA 或 ETS 模型的数据具有较长的季节性周期,例如每日数据为 365 或半小时数据为 48。通常,ARIMA 和 ETS 模型的季节性版本设计为较短的周期,例如每月数据 12 或 4季度数据”就像在stackoverflow中一样,我知道预测()只是使用ETS函数..什么是正确的..

0 投票
1 回答
1153 浏览

erlang - Erlang Term Storage (ETS) 存储在哪里?

嗨,我正在学习 Erlang。

我从http://learnyousomeerlang.com/ets阅读

Erlang 有一种叫做 ETS(Erlang Term Storage)的表。ETS 表是 Erlang 虚拟机附带的高效内存数据库。[...]

我的问题是:存储在 ETS 表中的 Erlang 术语数据 - 它们存储在哪里?它们是否临时存储在我的计算机内存中?如果我重新启动我的应用程序,它们会消失吗?

0 投票
1 回答
222 浏览

erlang - ets `public` `named` 表和 `local` 和 `ram_copy` mnesia 表有什么区别

我创建了一个记忆表,例如

因为local_content=true,所以它不能与其他节点共享数据,它是一个ram_copies表。

我相信我可以用 ets 表做同样的事情,如下所示。

我想从性能的角度来看,它们是相似的。

从语义的角度来看,我想知道这两个表之间有什么区别?

0 投票
2 回答
652 浏览

erlang - Erlang - ETS 表之间的比较

我们想知道如何有效地找到两个 ets 表之间的相互元素,我们尝试了 ETS 和 QLC 模块,但找不到方法,我们在 [bag] 选项上使用 ets,这意味着我们有几个值同一把钥匙。

我们正在寻找最快和最有效的解决方案。

0 投票
1 回答
420 浏览

erlang - 如何从 mnesia 备份文件中提取数据

问题陈述

我有一个 mnesia 备份文件,想从中提取值。有 3 个表(为了简单起见),员工、技能和出勤。因此,mnesia 备份文件包含这三个表中的所有数据。

员工表是:

技能表是

考勤表是

我试过 的我用过

ets:foldl(Fetch,OutputFile,Table)

Fetch :是一个单独的函数,用于遍历获取的记录以获取所需的输出格式。

OutputFile : 它写入这个文件

表:表的名称

期待

我是带有 AttendanceId 的 gettig 记录(因为这是关键),因为我只想获取代码。它显示员工信息和考勤ID。

帮帮我。