Erlang - Leistung
Wenn es um Leistung geht, müssen die folgenden Punkte zu Erlang beachtet werden.
Funs are very fast - Funs erhielt in R6B einen eigenen Datentyp und wurde in R7B weiter optimiert.
Using the ++ operator- Dieser Operator muss ordnungsgemäß verwendet werden. Das folgende Beispiel ist der falsche Weg, um eine ++ - Operation auszuführen.
Beispiel
-module(helloworld).
-export([start/0]).
start()->
fun_reverse([H|T]) ->
fun_reverse(T)++[H];
fun_reverse([]) ->
[].
Wenn der ++ - Operator seinen linken Operanden kopiert, wird das Ergebnis wiederholt kopiert, was zu einer quadratischen Komplexität führt.
Using Strings- Die Zeichenfolgenbehandlung kann bei unsachgemäßer Ausführung langsam sein. In Erlang müssen Sie etwas mehr darüber nachdenken, wie die Zeichenfolgen verwendet werden, und eine geeignete Darstellung auswählen. Wenn Sie reguläre Ausdrücke verwenden, verwenden Sie das Re-Modul in STDLIB anstelle vonobsolete regexp module.
BEAM is a Stack-Based Byte-Code Virtual Machine- BEAM ist eine registergestützte virtuelle Maschine. Es verfügt über 1024 virtuelle Register, die zum Speichern temporärer Werte und zum Übergeben von Argumenten beim Aufrufen von Funktionen verwendet werden. Variablen, die einen Funktionsaufruf überleben müssen, werden im Stapel gespeichert. BEAM ist ein Threaded-Code-Interpreter. Jeder Befehl ist ein Wort, das direkt auf ausführbaren C-Code verweist, wodurch das Versenden von Befehlen sehr schnell erfolgt.