Используйте правильное семантически. В общем, не беспокойтесь о производительности, если вы не тестировали, и вы уверены, что ваш код может извлечь выгоду из оптимизаций. Если вы используете то, что является наиболее правильным семантически, это, вероятно, будет самым быстрым в любом случае.
Было сказано, что является наиболее правильным семантически?
Атомы полезны для пометки или определения терминов, которые являются статическими, которые не будут меняться. Поэтому, если вы хотите сказать, что процесс выполняет какую-то работу, вы можете написать: send(pid, :do_some_work)
. Тогда другой процесс может легко соответствовать на атоме и выполнять требуемую работу (сравнение с атомами супер быстро).
Однако, если вы передаете динамический контент, то, безусловно, вы хотите использовать двоичные файлы. На самом деле было бы небезопасно преобразовывать двоичные файлы в атомы, а атомы также имеют ограничение по размеру. У вас не может быть атом длиной 1 килобайт.
Наконец, стоит обратить внимание на то, что атомы намного быстрее копируются. Атомы представлены как целые числа, они принимают одно слово. Таким образом, вы копируете только одно слово.
Binaries, даже если они разделены после определенного размера, принимают не менее 3 слов.
Дополнительная информация: Why is useful to have a atom type (like in elixir, erlang)?
Эрланг В.М. Эффективность руководство: http://www.erlang.org/doc/efficiency_guide/advanced.html
Преждевременная оптимизация == корень всех зол. –