Erlang - Hiệu suất
Khi nói về hiệu suất, những điểm sau đây cần được lưu ý về Erlang.
Funs are very fast - Funs đã được cung cấp kiểu dữ liệu riêng trong R6B và được tối ưu hóa hơn nữa trong R7B.
Using the ++ operator- Toán tử này cần được sử dụng đúng cách. Ví dụ sau đây là cách sai để thực hiện một hoạt động ++.
Thí dụ
-module(helloworld).
-export([start/0]).
start()->
fun_reverse([H|T]) ->
fun_reverse(T)++[H];
fun_reverse([]) ->
[].
Khi toán tử ++ sao chép toán hạng bên trái của nó, kết quả được sao chép nhiều lần, dẫn đến độ phức tạp bậc hai.
Using Strings- Xử lý chuỗi có thể chậm nếu thực hiện không đúng cách. Trong Erlang, bạn cần suy nghĩ thêm một chút về cách sử dụng các chuỗi và chọn một cách biểu diễn thích hợp. Nếu bạn sử dụng biểu thức chính quy, hãy sử dụng mô-đun lại trong STDLIB thay vìobsolete regexp module.
BEAM is a Stack-Based Byte-Code Virtual Machine- BEAM là một máy ảo dựa trên thanh ghi. Nó có 1024 thanh ghi ảo được sử dụng để giữ các giá trị tạm thời và để truyền các đối số khi gọi các hàm. Các biến cần tồn tại một lệnh gọi hàm được lưu vào ngăn xếp. BEAM là một trình thông dịch mã luồng. Mỗi lệnh là từ trỏ trực tiếp đến mã C có thể thực thi, làm cho việc gửi lệnh rất nhanh.