
- Erlang 教程
- Erlang - 首頁
- Erlang - 概述
- Erlang - 環境
- Erlang - 基本語法
- Erlang - Shell
- Erlang - 資料型別
- Erlang - 變數
- Erlang - 運算子
- Erlang - 迴圈
- Erlang - 決策制定
- Erlang - 函式
- Erlang - 模組
- Erlang - 遞迴
- Erlang - 數字
- Erlang - 字串
- Erlang - 列表
- Erlang - 檔案 I/O
- Erlang - 原子
- Erlang - 對映
- Erlang - 元組
- Erlang - 記錄
- Erlang - 異常
- Erlang - 宏
- Erlang - 標頭檔案
- Erlang - 預處理器
- Erlang - 模式匹配
- Erlang - 守護程序
- Erlang - BIFS
- Erlang - 二進位制
- Erlang - 函式
- Erlang - 程序
- Erlang - 郵件
- Erlang - 資料庫
- Erlang - 埠
- Erlang - 分散式程式設計
- Erlang - OTP
- Erlang - 併發
- Erlang - 效能
- Erlang - 驅動程式
- Erlang - Web 程式設計
- Erlang 有用資源
- Erlang - 快速指南
- Erlang - 有用資源
- Erlang - 討論
Erlang - 效能
在談論效能時,需要注意以下關於 Erlang 的幾點。
函式非常快 - 函式在 R6B 中獲得了自己的資料型別,並在 R7B 中得到了進一步最佳化。
使用 ++ 運算子 - 此運算子需要以正確的方式使用。以下示例是使用 ++ 運算子的錯誤方式。
示例
-module(helloworld). -export([start/0]). start()-> fun_reverse([H|T]) -> fun_reverse(T)++[H]; fun_reverse([]) -> [].
由於 ++ 運算子複製其左運算元,因此結果被重複複製,導致二次複雜度。
使用字串 - 如果處理不當,字串處理可能會很慢。在 Erlang 中,您需要更多地考慮字串的使用方式並選擇合適的表示形式。如果您使用正則表示式,請使用 STDLIB 中的 re 模組,而不是已棄用的 regexp 模組。
BEAM 是一個基於棧的位元組碼虛擬機器 - BEAM 是一個基於暫存器的虛擬機器。它有 1024 個虛擬暫存器,用於儲存臨時值以及在呼叫函式時傳遞引數。需要在函式呼叫中保留的變數會儲存到棧中。BEAM 是一個執行緒程式碼直譯器。每個指令都是一個指向可執行 C 程式碼的字,這使得指令分派非常快。
廣告