Erlang - Prestazioni
Quando si parla di prestazioni, è necessario notare i seguenti punti di Erlang.
Funs are very fast - Funs ha ricevuto un proprio tipo di dati in R6B ed è stato ulteriormente ottimizzato in R7B.
Using the ++ operator- Questo operatore deve essere utilizzato in modo corretto. Il seguente esempio è il modo sbagliato di eseguire un'operazione ++.
Esempio
-module(helloworld).
-export([start/0]).
start()->
fun_reverse([H|T]) ->
fun_reverse(T)++[H];
fun_reverse([]) ->
[].
Quando l'operatore ++ copia il suo operando sinistro, il risultato viene copiato ripetutamente, portando a una complessità quadratica.
Using Strings- La gestione delle stringhe può essere lenta se eseguita in modo improprio. In Erlang, devi pensare un po 'di più a come vengono utilizzate le corde e scegliere una rappresentazione appropriata. Se usi le espressioni regolari, usa il re-module in STDLIB invece diobsolete regexp module.
BEAM is a Stack-Based Byte-Code Virtual Machine- BEAM è una macchina virtuale basata su registri. Ha 1024 registri virtuali che vengono utilizzati per contenere valori temporanei e per passare argomenti quando si chiamano le funzioni. Le variabili che devono sopravvivere a una chiamata di funzione vengono salvate nello stack. BEAM è un interprete di codice a thread. Ogni istruzione è una parola che punta direttamente al codice C eseguibile, rendendo l'invio delle istruzioni molto veloce.