问题标签 [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 投票
2 回答
144 浏览

erlang - 如何在没有 ets:select 的情况下过滤 ETS 表

我有在 ETS 表中存储一些数据的模块现在我正在尝试过滤迭代 ETS 表的数据,但总是为空 [List]。(这个每次都匹配——matching('$end_of_table', Acc) -> Acc;)

可能是我错误地创建了 ETS 表吗?

0 投票
1 回答
2646 浏览

erlang - 输出 ETS Table Erlang 的内容

我是 Erlang 世界的新手,所以我正在尝试使用它。

我有一个名为 numbers 的 ETS 表。

它的格式为 [{Name,Number},{Name,Number}] 等。

我想知道有没有办法输出整个 ets 表的内容?

0 投票
1 回答
824 浏览

function - 从 ets:lookup() 中提取值 - Erlang

我有一个格式如下的 ets 表

放入表中的数据是球员姓名和年龄。

格式为 [{Name,Age}]

我制作了一个函数来尝试获取玩家的年龄和年龄。

我遇到了一个错误匹配错误,老实说,我很困惑。

这可以完成还是我要走了?

0 投票
1 回答
155 浏览

erlang - 有壳和没有壳的 ETS 的不同行为

首先声明我正在学习 erlang。这里根本不是专家。在使用 ETS 制作一些示例时,我遇到了一些我不理解的东西(即使在搜索之后)。

我有一个创建公共 ETS 的过程

然后我将 TableID 传递给其他进程。当我从外壳运行模块时,一切正常。当我使用 erl -noshell -s ... 甚至没有 -noshell 选项运行完全相同的模块时,它会失败。我不断收到错误:badarg,好像表格不存在一样。ID 正确通过,但表实际上表现得像私有的!

从 shell 交互运行模块与不运行模块有区别吗?

谢谢


我正在添加我用来尝试调试问题的代码示例。由于它是一个更大的软件的一部分(而且它基本上是为了找到问题而被剥离的),它可能很难理解。

当我删除“有问题的命令”ets:lookup 时,一切都再次作为交互式 shell 工作。

0 投票
1 回答
65 浏览

erlang - 将 `ordered_set` 用于 `select` 语句与 `>` 和 `<=` 以降低时间复杂性是否有意义

我使用 ETS 类型的表ordered_set,并且行看起来像{{integer_value, string}}(基本上它没有值,只有键)。

当我执行ets:select(tab, [match_spec])时,match_spec所做的是选择所有行,其中integer_value满足大于和小于理解。

我想知道,我是否受益,而不是扫描整个表,而是在对数时间内找到下限和上限,然后获取介于两者之间的所有元素,就像我对 SQL 表所期望的那样,或者这样的功能在 ETS 中没有实现并且没有使用ordered_set而不是普通的特别好处set

0 投票
1 回答
235 浏览

r - 使用 rets() 函数分析 CPI 数据时出现奇怪的结果

每个人。我刚开始学习时间序列。

我有以下来自中国的月度 CPI 数据(2010.01 - 2015.12)。

我想使用 R 中的 ets() 函数对这些数据进行一些预测。

我尝试按照以下链接中的程序进行操作: https ://stats.stackexchange.com/questions/146098/ets-function-how-to-avoid-forecast-not-in-line-with-historical-data

代码如下:

但是,我得到了下面看起来很奇怪的图表。我得到 alpha =0、beta =0 和 gamma = 0... 这似乎意味着我没有趋势也没有季节性?

在此处输入图像描述

对不起,我有很多问题..

  1. 预测看起来对吗?我认为这里出了点问题,但我无法弄清楚问题所在。

  2. “fit2$states[,1]”代表什么?红线代表什么?

非常感谢您的所有帮助..

然后我尝试使用部分数据向量[1:43]。我得到的是... 在此处输入图像描述

0 投票
1 回答
1129 浏览

elixir - Elixir ETS 密钥模式匹配

我正在使用 ETS 使用 ecto 从 postegress 缓存数据库模式,以下是这些示例:

表 = :ets.new(:cache_name,[:set, :protected])

并包括那些注册表:

:ets.insert(table,{:first_table,{1}})

:ets.insert(table,{:first_table,{5}})

:ets.insert(table,{:second_table,{1}})

但是第二个替换了第一个,因此我将表名和 id 连接起来以获得:ets.insert(table,{:first_table1,{1}})这些注册表的唯一键,但是目前我想要第一个表的第一个注册表我有一个问题,因为我包含第二个密钥相同,它检索两个注册表:

:ets.match_object(table,{:"_",{1}})

如果密钥包含 table_name 检索这些注册表,我如何向 ETS 指定?

0 投票
1 回答
208 浏览

elixir - 在加入 Phoenix 频道(或其他 pubsub)时同步应用程序状态

我正在构建一个协作绘图板(例如 r/place):有一个像素网格,用户可以随时更改它,并且像素更新会在线传播给所有其他用户。我想使用凤凰频道来广播像素变化。

我的问题是关于当用户连接到服务时如何正确发送当前应用程序状态。

目前我有一个 ETS 表保存绘图板状态。我可以MyChannel.handle_in/3在广播任何像素写入之前更新此表。

我担心读取当前状态MyChannel.join和用户被 Phoenix 订阅频道之间,不同的进程会更新状态。

用户将获得应用程序状态的陈旧版本,并且他们还没有被订阅,因此他们也不会通过 Channel 获得更新。

为了解决这个问题,我认为我需要一种方法来自动读取当前状态,然后订阅 pubsub,确保在该时间段内没有消息写入 ETS 表或 Channel。我猜是锁?是 Elixirey,还是有其他方法?

0 投票
1 回答
258 浏览

erlang - ETS 批量操作是原子操作吗?

具体来说,:ets.tab2list:ets.file2tab。这些函数是否“快照”表状态,或者其他操作可以在这些函数完成时交错读取和写入?

0 投票
1 回答
90 浏览

set - Elixir - 具有自定义等于/哈希函数的 ETS

在 Java 中,equals/hash 函数可以简单地通过覆盖/实现类的方法来定制。

当您想要自定义类的唯一性时,这非常有用 - 这样您就可以轻松检查集合中的“重复”。

你会如何在 Elixir 中做同样的事情,特别是在 ETS 中?