2012-01-24 29 views
5

I quieren pasar alrededor de un mensaje como talErlang: átomos o números enteros

{up, Distance} 
{down, Distance} 

I también podría hacer esto como tal

{1, Distance} 
{-1, Distance} 

La diferencia clave es uno es un átomo y otro un número entero . Al leer las páginas del manual aquí:

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

tanto un entero y un átomo ocupan 1 palabra en la memoria. Sin embargo, mencionan una tabla de átomos y necesitan referenciarla.

Mi pregunta es, ¿se hace referencia a la tabla de átomos cada vez que se usa un átomo? ¿Cuál de mis ejemplos es el más eficiente?

Respuesta

12

Serán igual de eficientes. La representación entera de un átomo se usa cuando se compara el patrón con otros términos. La tabla de átomos solo se usa cuando se imprimen átomos o se envían a través de la red (estas son excepciones en las que será marginalmente más lento usar átomos).

Favorece la legibilidad sobre el rendimiento en este caso.

Cuestiones relacionadas