目录

Erlang - 表演( Performance)

在谈论性能时,需要注意以下几点关于Erlang。

  • Funs are very fast - Funs在R6B中获得了自己的数据类型,并在R7B中进一步优化。

  • Using the ++ operator - 需要以正确的方式使用此运算符。 以下示例是执行++操作的错误方法。

例子 (Example)

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

当++运算符复制其左操作数时,结果将被重复复制,从而导致二次复杂度。

  • Using Strings - 如果操作不正确,字符串处理可能会很慢。 在Erlang中,您需要更多地考虑字符串的使用方式并选择合适的表示形式。 如果使用正则表达式,请使用STDLIB中的重新模块而不是obsolete regexp module

  • BEAM is a Stack-Based Byte-Code Virtual Machine - BEAM是基于寄存器的虚拟机。 它有1024个虚拟寄存器,用于保存临时值和调用函数时传递参数。 需要在函数调用中存活的变量将保存到堆栈中。 BEAM是一个线程代码解释器。 每条指令都直接指向可执行的C代码,使指令调度非常快。

↑回到顶部↑
WIKI教程 @2018