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

Performance Erlang

outils en ligne

  • Lors de la discussion sur les performances, il faut noter les points suivants concernant Erlang. Funs est très rapide6−En R7B a été optimisé davantage pour Funs. En R

  • d'utiliser ++ opérateur−Il est nécessaire d'utiliser ce opérateur correctement. Les exemples suivants montrent son exécution++méthode incorrecte de l'opération.

Exemples en ligne

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

when++l'opérateur de copie sa gauche operand when the result is copied twice, resulting in quadratic complexity.

  • l'utilisation des chaînes−Si mal géré, le traitement des chaînes de caractères peut être lent. Dans Erlang, vous devez plus considérer comment utiliser les chaînes de caractères et choisir la représentation appropriée. Si vous utilisez des expressions régulières, utilisez re dans STDLIB-module au lieu du module regexp obsolète.

  • BEAM est une machine virtuelle basée sur le pile bytecode−BEAM est une machine virtuelle basée sur des registres. Elle a1024des registres virtuels, utilisés pour stocker des valeurs temporaires et transmettre des paramètres lors de l'appel de fonctions. Les variables qui doivent survivre à l'appel de la fonction sont stockées dans la pile. BEAM est un interpréteur de code de thread. Chaque instruction pointe directement vers un mot de code c exécutable, ce qui rend le dispatching des instructions très rapide.