Reference ETS创建返回值

Reference ETS创建返回值,reference,erlang,elixir,ets,Reference,Erlang,Elixir,Ets,我用的是长生不老药1.6.3。 我正在使用Elixir中的Erlang:ets模块,我对:ets.new/2函数的返回值感到有点困惑 根据,当调用:ets.new(:whatever,[])时,应该返回一个看起来是整数值的值: iex> table = :ets.new(:buckets_registry, [:set, :protected]) 8207 但是,当我在iex中运行完全相同的代码时,我得到了一个参考: iex(1)> table = :ets.new(:bucket

我用的是长生不老药1.6.3。 我正在使用Elixir中的Erlang
:ets
模块,我对
:ets.new/2
函数的返回值感到有点困惑

根据,当调用
:ets.new(:whatever,[])
时,应该返回一个看起来是整数值的值:

iex> table = :ets.new(:buckets_registry, [:set, :protected])
8207
但是,当我在
iex
中运行完全相同的代码时,我得到了一个参考:

iex(1)> table = :ets.new(:buckets_registry, [:set, :protected])     
#Reference<0.1885502827.460455937.234656>
iex(1)>表=:ets.new(:bucket\u注册表,[:set,:protected])
#参考文献
那么,自文档编写以来,有什么变化吗?
还是完全一样,我对什么是引用感到困惑?

是的,
ets:new
的返回值在Erlang/OTP 20.0中从整数更改为引用。发件人:

OTP-14094应用程序:stdlib ***潜在不相容性*** 通过更改表标识符优化ETS操作 键入从整数到引用。该引用启用了 更直接地映射到表,潜力更小 锁争用,特别是创建和 删除表的规模要大得多。 ETS表格不透明类型的更改 标识符可能会导致代码出现故障,从而导致错误 关于这种不透明类型的假设。 存储在一个Erlang节点*上的表数* 受到限制。情况不再如此(除非 内存使用情况)。以前的默认限制大约是 1400个表,可通过设置 启动前的环境变量ERL_MAX_ETS_表 Erlang运行时系统。这一硬限制已被取消 已删除,但当前设置 不管怎么说,都要有一张桌子。它应该设置为 使用的表的最大数量的近似值。这 因为命名表的内部表的大小是使用 这个值。如果使用了大量命名表 而且ERL_MAX_ETS_表没有增加 命名表查找的性能将降低。
非常感谢。我提交了一个请求来更新文档,对吧。