[erlang-questions] What does "=index_table:atom_tab, size: 9216, limit: 9000, entries: 9216" mean?

Sverker Eriksson sverker.eriksson@REDACTED
Tue Mar 12 10:50:08 CET 2013

skyman wrote:
> Hi all,
> I use "erl +t 9000" to set the maximum number of atoms to 9000, then I call erlang:list_to_atom/1 to create atoms, and check the system info:
> 15> string:tokens(binary_to_list(erlang:system_info(info)),"\n").
> ["=memory","total: 49094720","processes: 33358002",
>  "processes_used: 33358002","system: 15736718",
>  "atom: 223537","atom_used: 211133","binary: 1063848",
>  "code: 3739735","ets: 251248","=hash_table:atom_tab",
>  "size: 6421","used: 4906","objs: 9216","depth: 7",
>  "=index_table:atom_tab","size: 9216","limit: 9000",
>  "entries: 9216","=hash_table:module_code","size: 97",
>  "used: 57","objs: 76","depth: 3","=index_table:module_code",
>  "size: 1024","limit: 65536","entries: 76",
>  [...]|...]
> Please look at the "=index_table:atom_tab" item, what do "size", "limit" and "entries" mean? why can the "size"(9216) larger than the "limit"(9000)?
> Thanks in advance!
'size' is number of allocated entries in the table
'limit' is the max number of entries
'entries' is number of used entries

The table increases 'size' in steps of 1024 entries.
And yes, the implementation (index.c) allows you to exceed 'limit' up to 
the nearest 1024 multiple. Which is what has happened in your case with 
9216 atoms.

/Sverker, Erlang/OTP

More information about the erlang-questions mailing list