Erlang 性能

在討論性能時(shí),需要注意有關(guān)Erlang的以下幾點(diǎn)。

  • Funs非???/strong> ?在R6B中為Funs賦予了自己的數(shù)據(jù)類型,并在R7B中對(duì)其進(jìn)行了進(jìn)一步優(yōu)化。

  • 使用 ++ 運(yùn)算符?需要正確使用此運(yùn)算符。以下示例是執(zhí)行++操作的錯(cuò)誤方法。

在線示例

-module(helloworld). 
-export([start/0]). 

start()->
   fun_reverse([H|T]) ->
   fun_reverse(T)++[H]; 
   fun_reverse([]) ->
   [].

當(dāng)++運(yùn)算符復(fù)制其左操作數(shù)時(shí),結(jié)果將被重復(fù)復(fù)制,從而導(dǎo)致二次復(fù)雜度。

  • 使用字符串?如果處理不當(dāng),字符串處理可能會(huì)很慢。在Erlang中,您需要更多地考慮如何使用字符串,并選擇適當(dāng)?shù)谋硎尽H绻褂谜齽t表達(dá)式,請(qǐng)使用STDLIB中的re-module而不是過(guò)時(shí)的regexp模塊。

  • BEAM 是一個(gè)基于堆棧的字節(jié)碼虛擬機(jī)?BEAM 是一個(gè)基于寄存器的虛擬機(jī)。它有1024個(gè)虛擬寄存器,用于保存臨時(shí)值和調(diào)用函數(shù)時(shí)傳遞參數(shù)。需要在函數(shù)調(diào)用后存活的變量被保存到堆棧中。BEAM 是一個(gè)線程代碼解釋器。每條指令都是直接指向可執(zhí)行 c 代碼的單詞,使得指令分派非???。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清