상단 10 : JavaScript, Python, Java, Typection, C#, PHP, C ++, C, Shell, Ruby Reference
기타 : Go, Rust, Swift, Crystal, Pony, Ada, Pascal, Fortran, Kotlin, Clojure, Scala, Mono, R, Dart, Julia, D, Nim, Cython, Python3, Pypy, Ruby Jit, Ocaml, Lisp, Haskell, Erlang, Elixir, Escript, Dart, Scheme, Lua, Pera, Pera, Pera, Pera, Pera, Perll. 이모티콘
이 코드는 2,971,215,073의 결과로 47 위의 재귀 피브보나치를 수행합니다.
Fibonacci는 여러 가지 방법으로 작성 될 수 있습니다. 이 프로젝트의 목표는 각 언어가 정확히 동일한 코드를 처리하는 방식을 비교하는 것입니다.
루비 버전은 다음과 같습니다.
def fib(n)
return n if n <= 1
fib(n - 1) + fib(n - 2)
end
puts fib(47)
Crystal 버전은 다음과 같습니다.
def fib(n)
return n if n <= 1
fib(n - 1) + fib(n - 2)
end
puts fib(47_u64)
레벨 경기장을 유지하면 컴파일링 단계에서 일반적인 "릴리스"플래그 만 사용됩니다. 이를 통해 인라인 및 일정한 전망과 같은 컴파일러 최적화는 가능하지만 위험한 점검을 우회하는 것으로 간주되는 모든 것을 제거합니다.
모든 테스트는 다음과 같습니다.
Docker : docker run -it drujensen/fib 사용하여 테스트를 실행할 수 있습니다.
기본적으로 모든 언어를 5 번 컴파일하고 실행합니다. 총계는 평균 컴파일 및 실행 시간을 추가하여 계산됩니다.
언어의 하위 집합 만 실행하려면 확장 목록과 선택적으로 카운트를 제공합니다.
docker run -it drujensen/fib ./run.sh s,c,cpp,go,rs,swift 5
화면을 사용하여 백그라운드에서 실행하려면 :
screen
docker run drujensen/fib > results.txt 2>&1Ctrl+A 뒤에 D 눌러 세션에서 분리하십시오.screen -r마지막 벤치 마크는 2024 년 12 월 5 일에 진행되었습니다
| 언어 | 총 | 엮다 | 시간 | 달리다 | 시간 | 내선 |
|---|---|---|---|---|---|---|
| 님 | 0.832 | NIM C -D : 릴리스 fib.nim | 0.669 | ./악의 없는 거짓말 | 0.163 | 님 |
| 기음 | 4.835 | gcc -o3 -o fib fib.c | 0.112 | ./악의 없는 거짓말 | 4.723 | 기음 |
| C ++ | 4.888 | g ++ -o3 -o fib fib.cpp | 0.139 | ./악의 없는 거짓말 | 4.750 | CPP |
| 포트란 | 6.334 | Gfortran -o3 -o fib fib.f03 | 0.130 | ./악의 없는 거짓말 | 6.204 | F03 |
| 아다 | 6.811 | Gnat make -o3 -gnatp -o fib fib.adb | 0.220 | ./악의 없는 거짓말 | 6.591 | ADB |
| 녹 | 8.108 | Rustc -C Opt -level = 3 fib.rs | 0.358 | ./악의 없는 거짓말 | 7.750 | Rs |
| 오딘 | 8.838 | Odin 빌드 fib.odin -file -0 : 속도 | 0.087 | ./악의 없는 거짓말 | 8.751 | 오딘 |
| 모조 | 8.947 | 모조 빌드 fib.mojo | 0.241 | ./악의 없는 거짓말 | 8.706 | 모조 |
| 다섯 | 9.168 | v -prod -o fib fib.v | 4.450 | ./악의 없는 거짓말 | 4.718 | 다섯 |
| 집회 | 9.367 | gcc -no -pie -o3 -o fib fib.s | 0.025 | ./악의 없는 거짓말 | 9.342 | 에스 |
| 스위프트 | 9.781 | Swiftc -ounged fib.swift | 0.399 | ./악의 없는 거짓말 | 9.381 | 스위프트 |
| 파스칼 | 10.460 | fpc -o3 -si ./fib.pas | 0.041 | ./악의 없는 거짓말 | 10.419 | 우선권 |
| 조랑말 | 11.106 | Ponyc -S -B Fib -p ./fib.pony | 0.879 | ./악의 없는 거짓말 | 10.226 | 조랑말 |
| OCAML | 16.018 | Ocamlopt -o3 -o fib fib.ml | 0.187 | ./악의 없는 거짓말 | 15.831 | ML |
| 급격한 변경 | 16.181 | zig build -exe -oreleasefast ./fib.zig | 6.882 | ./악의 없는 거짓말 | 9.299 | 급격한 변경 |
| 하스켈 | 18.095 | rm ./fib.o && ghc -o3 -o fib fib.hs | 0.001 | ./악의 없는 거짓말 | 18.094 | HS |
| 디 | 18.193 | DMD -Release -of = fib fib.d | 0.342 | ./악의 없는 거짓말 | 17.851 | 디 |
| 가다 | 18.948 | fib.go를 구축하십시오 | 1.107 | ./악의 없는 거짓말 | 17.842 | 가다 |
| 결정 | 20.525 | 크리스탈 빌드 -릴리스 fib.cr | 3.106 | ./악의 없는 거짓말 | 17.420 | Cr |
| LISP | 25.726 | SBCL -로드 fib.lisp | 0.979 | ./악의 없는 거짓말 | 24.747 | LISP |
| 다트 컴파일 | 31.707 | 다트 컴파일 exe -o fib ./fib.dart | 1.558 | ./악의 없는 거짓말 | 30.149 | DARTC |
| 코볼 | 4380.728 | cobc -x -o3 -o fib ./fib.cbl | 0.133 | ./악의 없는 거짓말 | 4380.596 | CBL |
| 언어 | 총 | 엮다 | 시간 | 달리다 | 시간 | 내선 |
|---|---|---|---|---|---|---|
| 기음# | 12.760 | dotnet 빌드 -c 릴리스 -o ./bin | 2.015 | dotnet ./bin/fib.dll | 10.744 | CS |
| 자바 | 13.040 | Javac Fib.java | 0.733 | Java Fib | 12.307 | 자바 |
| 스칼라 | 15.836 | scalac fib.scala | 2.682 | Scala Fib | 13.153 | 스칼라 |
| 코 틀린 | 16.286 | Kotlinc fib.kt | 4.074 | Java Fibkt | 12.212 | kt |
| Erlang | 28.378 | erlc +aviL +'{hipe, [o3]}'fib.erl | 0.402 | erl -noinput -noshell -s fib | 27.976 | erl |
| 그루비 | 70.123 | Groovyc fib.groovy | 1.519 | 그루비 섬유 | 68.604 | 그루비 |
| 언어 | 시간 | 달리다 | 내선 |
|---|---|---|---|
| Clojure | 17.815 | clojure -m fib.cljc | cljc |
| 줄리아 | 18.000 | Julia -o3 fib.jl | JL |
| 혈액 요소 질소 | 21.312 | Bun Fib.js | 혈액 요소 질소 |
| 다트 | 29.984 | 다트 fib. dart | 다트 |
| 마디 | 34.736 | 노드 fib.js | JS |
| 엘릭서 | 35.243 | erl_compiler_options = '[avatier, {hipe, [o3]}]'elixir fib.exs | 전 |
| Lua Jit | 37.837 | Luajit fib.lua | 루아 지 |
| 파이썬 (pypy) | 54.078 | pypy fib.py | pypy |
| 루비 (JIT) | 81.454 | 루비 -jit fib.rb | RBJIT |
| 언어 | 시간 | 달리다 | 내선 |
|---|---|---|---|
| escript | 28.380 | escript fib.es | es |
| 계획 | 102.887 | Guile fib.scm | scm |
| PHP | 157.312 | Php fib.php | PHP |
| 루아 | 203.702 | lua fib.lua | 루아 |
| 루비 | 393.625 | 루비 fib.rb | RB |
| 파이썬 | 423.427 | 파이썬 fib.py | 파이 |
| 자넷 | 479.663 | Janet ./fib.janet | 자넷 |
| 펄 | 1490.416 | perl fib.pl | Pl |
| 라쿠 | 1672.015 | Rakudo fib.raku | 라쿠 |
| TCL | 2230.883 | tclsh fib.tcl | TCL |
| 아르 자형 | 2575.249 | r -f fib.r | 아르 자형 |
모든 컴파일러는 Ubuntu 24.04 Docker 이미지에서 APT 또는 ASDF를 사용하여 설치됩니다.
| 언어 | 버전 |
|---|---|
| 아다 | 13.2.0 |
| 집회 | 13.2.0 |
| 세게 때리다 | 5.2.21 |
| 혈액 요소 질소 | 1.1.38 |
| 결정 | 1.14.0 |
| Clojure | 1.12.0.1488 |
| 다트 | 3.5.4 |
| DMD | 2.109.1 |
| 도트 넷 | 9.0.101 |
| 엘릭서 | 1.17.3 |
| 엘름 | 0.19.1 |
| Erlang | 27.1.2 |
| 포트란 | 13.2.0 |
| G ++ | 13.2.0 |
| GCC | 13.2.0 |
| 뇨코볼 | 3.2.0 |
| 골랑 | 1.23.2 |
| 그루비 | 4.0.24 |
| 교활 | 3.0.10 |
| 하스켈 | 9.8.3 |
| 자넷 | 1.36.0 |
| 자바 | OpenJDK-23 |
| 줄리아 | 1.11.1 |
| 케이 | 3.6 |
| 코 틀린 | 2.1.0 |
| LDC | 1.39.0 |
| 루아 | 5.4.7 |
| 루아 지 | 2.1.1 |
| 모조 | 24.5.0 |
| 님 | 2.2.0 |
| nodejs | 23.3.0 |
| OCAML | 5.2.1 |
| 오딘 | DEV-2024-11 |
| 파스칼 | 3.2.2 |
| 펄 | 5.40.0 |
| PHP | 8.4.1 |
| 조랑말 | 0.58.7 |
| PowerShell-Core | 7.4.6 |
| 파이썬 | 3.12.0 |
| pypy | 7.3.17 |
| 아르 자형 | 4.4.2 |
| 라쿠도 | 2024.10 |
| 루비 | 3.3.6 |
| 녹 | 1.83.0 |
| SBCL | 2.4.11 |
| 스칼라 | 3.3.4 |
| 스위프트 | 6.0.2 |
| TCL | 9.0.0 |
| 다섯 | 0.4.8 |
| 급격한 변경 | 0.13.0 |