A good start when programming efficiently is to have knowledge about how much memory different data types and operations require. It is implementation-dependent how much memory the Erlang data types and other items consume, but here are some figures for the erts-5.2 system (OTP release R9B). (There have been no significant changes in R13.)
The unit of measurement is memory words. There exists both a 32-bit and a 64-bit implementation, and a word is therefore, 4 bytes or 8 bytes, respectively.
The Erlang language specification puts no limits on number of processes, length of atoms etc., but for performance and memory saving reasons, there will always be limits in a practical implementation of the Erlang language and execution environment.
The maximum number of simultaneously alive Erlang processes is
by default 32768. This limit can be configured at startup,
for more information see the
A remote node Y has to be known to node X if there exist
any pids, ports, references, or funs (Erlang data types) from Y
on X, or if X and Y are connected. The maximum number of remote
nodes simultaneously/ever known to a node is limited by the
The maximum number of simultaneously open Erlang ports is
often by default 16384. This limit can be configured at startup,
for more information see the