Erlang:原子或整数

BAR*_*BAR 5 erlang integer processing-efficiency

我想传递一条消息

{up, Distance}
{down, Distance}
Run Code Online (Sandbox Code Playgroud)

我也可以这样做

{1, Distance}
{-1, Distance}
Run Code Online (Sandbox Code Playgroud)

关键的区别是一个是原子,另一个是整数.在这里阅读手册页:

http://www.erlang.org/doc/efficiency_guide/advanced.html

整数和原子在内存中占用1个字.但他们提到了原子表并需要引用它.

我的问题是,原子表是否在每次使用原子时被引用?我的哪个例子效率最高?

Ada*_*erg 12

它们同样有效.当模式匹配其他项时,使用原子的整数表示.原子表仅在打印原子或通过网络发送原子时使用(这些是使用原子的速度稍慢的例外).

在这种情况下,赞成可读性而不是性能.