English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Rendimiento de Erlang

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.

Ejemplo en línea

-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.