أعلى 10: JavaScript ، Python ، Java ، TypeScript ، C#، PHP ، C ++ ، C ، Shell ، Ruby Reference
آخرون: GO ، RACT ، SWIFT ، CRYSTAL ، PONY ، ADA ، Pascal ، Fortran ، Kotlin ، Clojure ، Scala ، Mono ، R ، Dart ، Julia ، D ، Nim ، Cython ، Python3 ، Pypy ، Ruby Jit ، Ocaml ، Lisp ، Haskell ، Erlang ، EliSir ، الرموز التعبيرية
ينفذ الرمز فيبونشي المتكرر إلى الموضع 47 مع نتيجة 2،971،215،073.
يمكن كتابة فيبوناتشي عدة طرق مختلفة. الهدف من هذا المشروع هو مقارنة كيفية تعامل كل لغة مع نفس الرمز بالضبط.
ها هي نسخة روبي:
def fib(n)
return n if n <= 1
fib(n - 1) + fib(n - 2)
end
puts fib(47)
ها هي النسخة البلورية:
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 متبوعًا بـ Dscreen -rتم تشغيل آخر معيار في 05 ديسمبر 2024
| لغة | المجموع | ترجمة | وقت | يجري | وقت | تحويلة |
|---|---|---|---|---|---|---|
| نيم | 0.832 | NIM C -D: إطلاق FIB.NIM | 0.669 | ./fib | 0.163 | نيم |
| ج | 4.835 | GCC -O3 -O FIB.C | 0.112 | ./fib | 4.723 | ج |
| C ++ | 4.888 | G ++ -o3 -o Fib.cpp | 0.139 | ./fib | 4.750 | CPP |
| فورتران | 6.334 | Gfortran -o3 -o Fib.f03 | 0.130 | ./fib | 6.204 | F03 |
| أدا | 6.811 | gnat make -o3 -gnatp -o fib.adb.adb | 0.220 | ./fib | 6.591 | ADB |
| الصدأ | 8.108 | Rustc -C -level = 3 fib.rs | 0.358 | ./fib | 7.750 | روبية |
| أودين | 8.838 | Odin Build Fib.odin -file -0: السرعة | 0.087 | ./fib | 8.751 | أودين |
| موجو | 8.947 | Mojo Build Fib.Mojo | 0.241 | ./fib | 8.706 | موجو |
| الخامس | 9.168 | v -prod -o fib. | 4.450 | ./fib | 4.718 | الخامس |
| حَشد | 9.367 | gcc -no -pie -o3 -o fib.s | 0.025 | ./fib | 9.342 | ق |
| سريع | 9.781 | Swiftc -ivelected fib.swift | 0.399 | ./fib | 9.381 | سريع |
| باسكال | 10.460 | FPC -o3 -si ./fib.pas | 0.041 | ./fib | 10.419 | PAS |
| ترجمة حرفية | 11.106 | ponyc -s -bib -p ./fib.pony | 0.879 | ./fib | 10.226 | ترجمة حرفية |
| Ocaml | 16.018 | Ocamlopt -o3 -o fib.ml | 0.187 | ./fib | 15.831 | مل |
| متعرج | 16.181 | zig build -exe -oreleasefast ./fib.zig | 6.882 | ./fib | 9.299 | متعرج |
| هاسكل | 18.095 | rm ./fib.o && ghc -o3 -o fib.hs | 0.001 | ./fib | 18.094 | HS |
| د | 18.193 | DMD -Release -of = fibib.d | 0.342 | ./fib | 17.851 | د |
| يذهب | 18.948 | اذهب بناء fib.go | 1.107 | ./fib | 17.842 | يذهب |
| كريستال | 20.525 | بناء البلورة -إطلاق النار من FIB.CR | 3.106 | ./fib | 17.420 | كر |
| لايس | 25.726 | SBCL -تحميل fib.lisp | 0.979 | ./fib | 24.747 | لايس |
| DART المترجمة | 31.707 | Dart Compile exe -o fib ./fib.dart | 1.558 | ./fib | 30.149 | دارتك |
| كوبول | 4380.728 | COBC -X -o3 -O FIB ./fib.cbl | 0.133 | ./fib | 4380.596 | CBL |
| لغة | المجموع | ترجمة | وقت | يجري | وقت | تحويلة |
|---|---|---|---|---|---|---|
| ج# | 12.760 | dotnet build -c release -o ./bin | 2.015 | dotnet ./bin/fib.dll | 10.744 | CS |
| جافا | 13.040 | Javac Fib.java | 0.733 | جافا فيب | 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 |
| إرلانج | 28.378 | erlc +native +'{hipe ، [o3]}' fib.erl | 0.402 | erl -noinput -noshell -s fib | 27.976 | إرل |
| رائع | 70.123 | groovyc fib.groovy | 1.519 | أليفة مروعة | 68.604 | رائع |
| لغة | وقت | يجري | تحويلة |
|---|---|---|---|
| clojure | 17.815 | clojure -mib.cljc | CLJC |
| جوليا | 18.000 | جوليا -O3 FIB.JL | JL |
| كعكة | 21.312 | كعكة FIB.JS | كعكة |
| دارت | 29.984 | دارت FIB.DART | دارت |
| العقدة | 34.736 | عقدة FIB.JS | JS |
| إكسير | 35.243 | erl_compiler_options = '[native ، {hipe ، [o3]}]' Elixir fib.exs | exs |
| لوا جيت | 37.837 | Luajit fib.lua | لوجيت |
| بيثون (Pypy) | 54.078 | pypy fib.py | Pypy |
| روبي (JIT) | 81.454 | روبي -جيت fib.rb | RBJIT |
| لغة | وقت | يجري | تحويلة |
|---|---|---|---|
| emcript | 28.380 | Escript FIB.ES | ES |
| مخطط | 102.887 | Guile FIB.SCM | SCM |
| PHP | 157.312 | PHP FIB.PHP | PHP |
| لوا | 203.702 | لوا FIB.LUA | لوا |
| روبي | 393.625 | روبي FIB.RB | RB |
| بيثون | 423.427 | بيثون fib.py | PY |
| جانيت | 479.663 | جانيت ./fib.janet | جانيت |
| بيرل | 1490.416 | Perl FIB.PL | رر |
| راكو | 1672.015 | Rakudo Fib.Raku | راكو |
| TCL | 2230.883 | tclsh fib.tcl | TCL |
| ص | 2575.249 | R -f FIB.R | ص |
يتم تثبيت جميع المترجمين باستخدام APT أو ASDF على Ubuntu 24.04 Docker Image:
| لغة | إصدار |
|---|---|
| أدا | 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 |
| dotnet | 9.0.101 |
| إكسير | 1.17.3 |
| الدردار | 0.19.1 |
| إرلانج | 27.1.2 |
| فورتران | 13.2.0 |
| G ++ | 13.2.0 |
| مجلس التعاون الخليجي | 13.2.0 |
| Gnucobol | 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 |