Erlang 나눗셈 성능 테스트
Go의 제법 테스트를 썼는데, 심혈래조는 Erlang의 것을 계속 테스트해 봅시다. (이 두 언어의 결과는 비교성이 없습니다. 전자는 전문적으로 점수를 매기는 Benchmark 라이브러리를 실현했기 때문입니다.)
-module(test_func).
-export([start/2]).
start(FirstType,SecondType) ->
case FirstType of
int ->
case SecondType of
int ->
start_int_int(16#7FFFFFFFFF,1000000);
float ->
start_int_float(16#7FFFFFFFFF,1000000)
end;
float ->
case SecondType of
int ->
start_float_int(float(16#7FFFFFFFFF),1000000);
float ->
start_float_float(float(16#7FFFFFFFFF),1000000)
end
end.
start_int_int(N,0) ->
ok;
start_int_int(N,Times) ->
start_int_int(N/3,Times-1).
start_int_float(N,0) ->
ok;
start_int_float(N,Times) ->
start_int_float(N/1.5,Times-1).
start_float_int(N,0) ->
ok;
start_float_int(N,Times) ->
start_float_int(N/3,Times-1).
start_float_float(N,0) ->
ok;
start_float_float(N,Times) ->
start_float_float(N/1.5,Times-1).
결과는 다음과 같습니다(Mac 시스템, 4코어 8스레드 2.5GCPU).
정수를 정수로 나누기:19ns
정수를 부동 소수점으로 나누기: 70ns
부동 소수점 정수로 나누기:19ns
부동 소수점 나누기 부동 소수점: 70ns
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Instalando o Elixir e o Erlang com o gerenciador de versões asdfEsse tutorial usa o gerenciador de versões asdf, mas fique a vontade para utilizar outros se preferir. Infelizmente o as...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.