User's Guide
PDF
Top
Efficiency Guide
User's Guide
Version 6.1
Expand All
Contract All
Chapters
Introduction
Top of chapter
Purpose
Prerequisites
The Eight Myths of Erlang Performance
Top of chapter
Myth: Funs are slow
Myth: List comprehensions are slow
Myth: Tail-recursive functions are MUCH faster than recursive functions
Myth: '++' is always bad
Myth: Strings are slow
Myth: Repairing a Dets file is very slow
Myth: BEAM is a stack-based byte-code virtual machine (and therefore slow)
Myth: Use '_' to speed up your program when a variable is not used
Common Caveats
Top of chapter
The timer module
list_to_atom/1
length/1
setelement/3
size/1
split_binary/2
The '--' operator
Constructing and matching binaries
Top of chapter
How binaries are implemented
Constructing binaries
Matching binaries
List handling
Top of chapter
Creating a list
List comprehensions
Deep and flat lists
Why you should not worry about recursive lists functions
Functions
Top of chapter
Pattern matching
Function Calls
Memory usage in recursion
Tables and databases
Top of chapter
Ets, Dets and Mnesia
Ets specific
Mnesia specific
Processes
Top of chapter
Creation of an Erlang process
Process messages
The SMP emulator
Drivers
Top of chapter
Drivers and concurrency
Avoiding copying of binaries when calling a driver
Returning small binaries from a driver
Returning big binaries without copying from a driver
Advanced
Top of chapter
Memory
System limits
Profiling
Top of chapter
Do not guess about performance - profile
Big systems
What to look for
Tools
Benchmarking
Efficiency Guide User's Guide
Version 6.1
June 23, 2014