MER INFORMATION

Efficient String Representation in Erlang/OTP

A string in Erlang is implemented as a linked list of integers. This leads to a large memory
overhead on modern hardware (64 bits) causing each character to take 16 bytes, especially
compared to the natural representation where each character takes 1 byte. In this report we
show and compare alternative string representations to achieve less overhead. Furthermore,
we explore the memory management in Erlang’s abstract machine (BEAM), and show how to
measure and reason about its memory usage.
As a case-study we use Ericsson’s SGSN-MME, a massively concurrent Erlang system running
hundreds of thousands of Erlang processes. We have chosen a part of the system where
the existing code has performance issues involving hostname processing and representation.
In particular we analyse the behaviour of an existing algorithm used for selecting gateway
hostnames by performing suffix matching. We give examples of improvements of this, both
algorithmic and storage-wise.

Länka till denna publikation

Dela på webben

Skapa referens, olika format (klipp och klistra)

BibTeX @mastersthesis{Lamov2016,author={Lamov, Andrej},title={Efficient String Representation in Erlang/OTP},abstract={A string in Erlang is implemented as a linked list of integers. This leads to a large memory
overhead on modern hardware (64 bits) causing each character to take 16 bytes, especially
compared to the natural representation where each character takes 1 byte. In this report we
show and compare alternative string representations to achieve less overhead. Furthermore,
we explore the memory management in Erlang’s abstract machine (BEAM), and show how to
measure and reason about its memory usage.
As a case-study we use Ericsson’s SGSN-MME, a massively concurrent Erlang system running
hundreds of thousands of Erlang processes. We have chosen a part of the system where
the existing code has performance issues involving hostname processing and representation.
In particular we analyse the behaviour of an existing algorithm used for selecting gateway
hostnames by performing suffix matching. We give examples of improvements of this, both
algorithmic and storage-wise.},publisher={Institutionen för data- och informationsteknik (Chalmers), Chalmers tekniska högskola},place={Göteborg},year={2016},note={97},}

RefWorks RT GenericSR ElectronicID 245711A1 Lamov, AndrejT1 Efficient String Representation in Erlang/OTPYR 2016AB A string in Erlang is implemented as a linked list of integers. This leads to a large memory
overhead on modern hardware (64 bits) causing each character to take 16 bytes, especially
compared to the natural representation where each character takes 1 byte. In this report we
show and compare alternative string representations to achieve less overhead. Furthermore,
we explore the memory management in Erlang’s abstract machine (BEAM), and show how to
measure and reason about its memory usage.
As a case-study we use Ericsson’s SGSN-MME, a massively concurrent Erlang system running
hundreds of thousands of Erlang processes. We have chosen a part of the system where
the existing code has performance issues involving hostname processing and representation.
In particular we analyse the behaviour of an existing algorithm used for selecting gateway
hostnames by performing suffix matching. We give examples of improvements of this, both
algorithmic and storage-wise.PB Institutionen för data- och informationsteknik (Chalmers), Chalmers tekniska högskola,LA engLK http://publications.lib.chalmers.se/records/fulltext/245711/245711.pdfOL 30