English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Herramientas en línea
Al discutir el rendimiento, es necesario prestar atención a los siguientes puntos sobre Erlang. Funs es muy rápido6−En R7B se ha optimizado aún más. B le ha asignado su propio tipo de datos a Funs y en R
uso ++ operador−Deben usar correctamente este operador. A continuación se muestra un ejemplo de su ejecución++Métodos erróneos de operación.
-module(helloworld). -export([start/0]). start()-> fun_reverse([H|T]) -> fun_reverse(T)++[H]; fun_reverse([]) -> []
cuando++cuando el operador de copia su operando izquierdo, el resultado se copiará repetidamente, lo que lleva a una complejidad cuadrática.
Uso de cadenas−Si no se maneja adecuadamente, el procesamiento de cadenas puede ser lento. En Erlang, necesitas considerar más cómo usar las cadenas y elegir la representación adecuada. Si usas expresiones regulares, usa re en STDLIB-módulo en lugar del módulo regexp obsoleto.
BEAM es una máquina virtual de bytecode basada en pila−BEAM es una máquina virtual basada en registros. Tiene1024Un registro virtual, utilizado para guardar valores temporales y pasar parámetros durante la llamada a funciones. Las variables que deben sobrevivir después de la llamada a la función se guardan en la pila. BEAM es un intérprete de código en hilos. Cada instrucción apunta directamente a una palabra de código c ejecutable, lo que hace que la dispatch de instrucciones sea muy rápida.