English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Quando si discute prestazioni, è necessario tenere a mente i seguenti punti relativi a Erlang.
Funs è molto veloce −In R6B, Funs ha ricevuto il proprio tipo di dati e in R7B è stato ulteriormente ottimizzato.
Uso dell'operatore ++−Deve utilizzare correttamente questo operatore. Esempi di metodi errati per eseguire l'operazione ++.
-module(helloworld). -export([start/0]). start() -> fun_reverse([H|T]) -> fun_reverse(T) ++ [H]; fun_reverse([]) -> [].
Quando l'operatore ++ copia il suo operando di sinistra, il risultato viene copiato più volte, portando a una complessità di due volte.
Utilizzo delle stringhe−Se non gestita correttamente, la gestione delle stringhe potrebbe essere lenta. In Erlang, è necessario considerare attentamente come utilizzare le stringhe e scegliere la rappresentazione appropriata. Se si utilizzano espressioni regolari, utilizzare il modulo re della STDLIB invece del modulo regexp obsoleto.
−BEAM è un virtual machine basata su stack−BEAM è un virtual machine basata su register. Ha 1024 registri virtuali, utilizzati per conservare valori temporanei e passare parametri durante la chiamata di funzione. Le variabili che devono sopravvivere alla chiamata di funzione vengono salvate nello stack. BEAM è un interprete di codice thread. Ogni istruzione punta direttamente a una parola di codice eseguibile c, il che rende molto veloce la distribuzione delle istruzioni.