Erlang: атомы или целые числа - PullRequest
       18

Erlang: атомы или целые числа

5 голосов
/ 24 января 2012

Я хочу передать сообщение как таковое

{up, Distance}
{down, Distance}

Я также мог бы сделать это как таковое

{1, Distance}
{-1, Distance}

Разница в том, что один - это атом, а другой - целое число.Читая справочные страницы здесь:

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

и целое число, и атом занимают 1 слово в памяти.Однако они упоминают таблицу атомов и нуждаются в ссылках на нее.

Мой вопрос заключается в том, получает ли ссылка на таблицу атомов каждый раз, когда используется атом?Какой из моих примеров наиболее эффективен?

1 Ответ

12 голосов
/ 24 января 2012

Они будут одинаково эффективны.Целочисленное представление атома используется при сопоставлении с другими терминами.Таблица атомов используется только при печати атомов или отправке их по сети (это исключения, в которых использование атомов будет несколько медленнее).

В этом случае удобочитаемость по сравнению с производительностью.

...