问题标签 [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 回答
590 浏览

r - 使用 Shiny 的 ETS 模型

我正在尝试使用新的 RStudio 功能Shiny创建一个 Web 应用程序。我正在尝试 ETS 状态空间模型。我想手动指定模型类型(server.R 中的粗体文本)。我在 server.R 的引号内给出输入。如果我们在引号内给出 iputs,它不会占用。请你帮助我好吗...

用户界面

服务器.R

0 投票
1 回答
143 浏览

erlang - erlang ets BIF 实现 ets_new_2 为什么要这样做?

R16B02 erl_db.c:1272

我的曲。为什么这样做?init_tb 只使用 common.memory_size 字段。为什么不使用 int 替换?

0 投票
2 回答
639 浏览

erlang - 如何在 Erlang 中实现 ETS 状态的线程安全?

我在 Erlang 中创建了一个连接池进程,它有子进程(每个都是一个连接)。连接池进程(主管)需要保存所有子子进程的状态,例如指示子进程是否可供请求者租用的标志。此状态存储在 ETS 表中

泳池大师:

  • 连接过程1
  • 连接过程2
  • 连接过程3

当客户端请求到 POOL-MASTER 的连接时,它必须通过查看 ETS 并获取状态来找出可用的连接进程。这个阶段被称为“ get-lease ”。然后状态被更新。类似地,当客户端将连接返回到池时,它使用“ return-lease ”函数将项目标记为可供下一个客户端使用。

我想让上面的函数“ get-leasereturn-lease ”是线程安全的。换句话说,我想确保没有客户端同时使用这些功能,否则连接的状态可能会混淆(两个客户端获得相同的连接)。在 java 中,将使用同步方法来实现此目的。

erlang 中有什么可以实现的吗?例如 ETS 表上的某种锁定机制,然后重新锁定?或者是否应该创建一个处理要锁定/解锁的特定功能并将消息发送到该进程的单个进程(假设消息传递是单线程的)?

0 投票
2 回答
275 浏览

erlang - 如何使用 if 结构找出 ets 表是否为空

我是 Erlang 的新手。我有一个使用 ets:table 的学校项目。但在我想从 ets:table 中获取一些数据之前,我想使用一个 if 结构来检查表是否为空。

现在这给了我一个错误:非法守卫表达式。

我不知道我做错了什么,请帮忙。

带着友好的问候

大安

0 投票
1 回答
640 浏览

erlang - ets:foldl vs 删除的元素

ets:foldl/3的文档说:

如果Function将对象插入表中,或者另一个进程将对象插入表中,则这些对象可能(取决于键顺序)包含在遍历中。

但是如果Function从表中删除对象会发生什么?在这种情况下,是否可以保证所有剩余的对象都将包含在遍历中?

0 投票
2 回答
103 浏览

erlang - ETS 功能在 Erlang 中无法正常工作

ets 的新函数返回一个整数而不是原子

0 投票
1 回答
1863 浏览

erlang - ets 是否提供了一种一次性进行更新和读取的方法——比如增量操作?

在设置标准 Cowboy Web 处理例程之前,我在start(_StartType, _StartArgs) ->函数中初始化了一个命名的 ets 表。

ets:new( req_stats ,[named_table,public]),ets:insert(req_stats,{ req_count ,0})

我有这个功能:

我担心的是这个;

如果我在高负载下为每个 Web 请求调用 count_req(),我很可能会得到一个不准确的计数,因为[{_,Cnt}]=ets:lookup(req_stats,req_count)在我返回之前可能会更新几次计数+1

ets 是否提供了一种一次性进行更新和读取的方法——比如增量操作?

谢谢。

0 投票
1 回答
111 浏览

erlang - Erlang ordered_set 反向存储术语

我只想使用ordered_set 类型的ets。

但我输入的术语是存储在 Erlang 术语排序中,如 1、2、3、4...

如何以相反的顺序存储 Erlang 术语,如 4、3、2、1

0 投票
1 回答
1411 浏览

erlang - 如何更新 ets 包中的数据?

ets:insert 可用于更新 ets set 中的数据,但是 bag 呢?我们是否必须先通过 match_delete 或 select_delete 进行更新,然后再插入?

0 投票
1 回答
207 浏览

erlang - 数据文件和 ETS 表之间的平均大小比是多少?

我正在评估使用 Erlang ETS 来存储一个大型内存数据集。我的测试数据源是一个 CSV 文件,它只消耗 350 MB 的磁盘。

我的解析器逐行读取并将其拼接成一个列表,然后使用“bag”配置创建一个元组并将其存储在ETS中。

在 ETS 中加载所有数据后,我注意到我的计算机的 8GB RAM 全部消失了,并且操作系统创建了虚拟内存,占用了接近 16GB 或 RAM 的某个地方。erlang 的 Beam 进程消耗的内存似乎是磁盘数据大小的10 倍。

这是测试代码