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

Desempenho do Erlang

Ferramentas online

  • Ao discutir desempenho, é necessário prestar atenção aos seguintes pontos sobre Erlang. Funs é muito rápido6−Em R7B foi otimizado ainda mais. Em B, Funs foi atribuído seu tipo de dados próprio e em R

  • uso ++ operador−Correcto uso deste operador. Abaixo estão exemplos de execução++método errado de operação.

Exemplo Online

-module(helloworld). 
-export([start/0]). 
start()->
   fun_reverse([H|T]) ->
   fun_reverse(T)++[H]; 
   fun_reverse([]) ->
   []

quando++ao copiar seu operando esquerdo, o resultado será copiado novamente, resultando em complexidade quadrática.

  • usar strings−Se não tratado corretamente, o processamento de strings pode ser lento. No Erlang, você precisa considerar mais como usar strings e escolher a representação apropriada. Se você usar expressões regulares, use re do STDLIB-módulo em vez do módulo regexp obsoleto.

  • O BEAM é uma máquina virtual de bytecode baseada em pilha−O BEAM é uma máquina virtual baseada em registradores. Ele tem1024um registrador virtual, usado para armazenar valores temporários e passar parâmetros ao chamar funções. As variáveis que precisam sobreviver após a chamada da função são armazenadas na pilha. O BEAM é um interpretador de código de thread. Cada instrução aponta diretamente para uma palavra de código executável em C, tornando a despachada de instruções muito rápida.