English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
성능에 대해 논의할 때 Erlang에 관련된 다음 몇 가지를 주의해야 합니다.
Funs는 매우 빠르다 −R6B에서 Funs에 자신의 데이터 타입을 부여하고 R7B에서 추가적으로 최적화되었습니다.
사용 ++ 연산자−이 연산자를 올바르게 사용해야 합니다. 다음 예제는 실행++작업의 잘못된 방법.
-module(helloworld). -export([start/0]). start()-> fun_reverse([H|T]) -> fun_reverse(T)++[H]; fun_reverse([]) -> []
when++연산자가 왼쪽 연산자를 복사할 때, 결과는 복사됨으로써 두 번째 복잡도가 발생합니다.
문자열 사용−잘 다루지 않으면 문자열 처리가 느릴 수 있습니다. Erlang에서는 문자열 사용에 대해 더 많이 고려하고 적절한 표현을 선택해야 합니다. 정규 표현식을 사용할 때는 STDLIB의 re를 사용하세요-module이 옛날의 regexp 모듈보다 좋습니다.
BEAM은 스택 기반 바이너리 코드 가상 기계입니다−BEAM은 레지스터 기반 가상 기계입니다. 그것은1024가상 레지스터를 사용하여 일시적인 값과 함수 호출 시 매개변수를 전달합니다. 함수 호출 후 살아남아야 할 변수는 스택에 저장됩니다. BEAM은 스레드 코드 인터프리터입니다. 각 명령어는 직접 실행 가능한 C 코드 단어로 지정되어 있어 명령어 분배가 매우 빠르게 이루어집니다.