ETS设置保留顺序?

时间:2011-11-11 03:57:37

标签: erlang ets

ETS是否设置保证元组的内部顺序与它们的插入顺序相同?例如:我通过每秒插入一个元组来保存日志,时间戳是关键。在这个例子中,是否设置保证元组按键排序?

我理解ordered_set会按照我的意愿行事,但它有插入开销。因此,如果set保持插入顺序,那么在我的示例中使用set会更有效。那么,是吗? : - )

提前致谢, 尼古拉

2 个答案:

答案 0 :(得分:5)

不,对于表类型set,根本无法保证密钥的排序顺序。对它们进行哈希处理,然后使用哈希值将元素放入表中。该表有时会调整大小并使用,因此订单会发生变化。所以不,你很幸运。

答案 1 :(得分:2)

即使ETS set 今天完成了您的假设,也无法保证将来会继续这样做 - 尤其是当有{{1}时}它具有您需要的确切属性。