- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/pidigits.html
1.0 C gcc #6 0.59 2,444 1090 2.37 100% 100% 100% 98%
1.1 C++ g++ #6 0.66 5,152 986 2.63 100% 100% 100% 100%
1.2 Rust #4 0.71 2,672 799 0.73 3% 0% 0% 100%
1.2 Free Pascal #3 0.73 2,268 530 0.73 0% 0% 100% 0%
1.4 F# .NET #6 0.82 34,428 905 0.83 1% 2% 96% 1%
1.4 Haskell GHC #5 0.83 6,056 928 0.84 0% 99% 1% 1%
1.5 Ada 2012 GNAT 0.88 4,704 1130 0.89 0% 0% 100% 1%
1.5 Rust #2 0.88 2,800 1306 0.89 0% 1% 100% 0%
1.5 C++ g++ #4 0.89 4,280 513 0.92 0% 2% 1% 100%
1.5 OCaml #7 0.89 5,968 593 0.90 0% 0% 1% 100%
1.5 Swift #2 0.89 9,256 600 0.91 3% 0% 0% 99%
1.5 PHP #5 0.91 13,196 399 0.96 2% 0% 3% 100%
1.5 C# .NET #5 0.92 35,404 977 0.96 98% 3% 2% 1%
1.6 Java #3 0.93 36,552 764 0.98 2% 3% 1% 99%
However, Java is one of the fastest and most energy-efficient object-oriented language. Interpreted languages like Perl, Python, and Ruby were among the least energy efficient
Using the Computer Benchmarks Game, the team of researchers tested these languages by compiling/executing such programs using the state-of-the-art compilers, virtual machines, interpreters, and libraries.
They then analyzed the performance of the different implementation considering three variables: execution time, memory consumption and energy consumption.
https://jaxenter.com/energy-efficient-programming-languages-137264.html
https://jaxenter.com/wp-content/uploads/2017/09/energy-efficient-languages-768x689.png
https://jaxenter.com/wp-content/uploads/2017/09/energy-efficient-languages-2-768x368.png
3.14159265 31.08.2021 18:28 # +2
Меня удивило как в данном «PHP» обговняет «Йажу» и в целом вся эта скриптуха сливает Сишке где-то в полтора раза.
Ага. «Computer Benchmarks Game»
Смотрим как state-of-the-art virtual machines реализуют алгоритмы.
Начнём с «Хацкеля».
Ой, а что это тут у нас:
Подожди, мразь бездарная. Ты ведь просто симпортила написанную на Сишке либу GNU Multiple Precision Arithmetic Library (GMP).
ABryCTOBCKuu_nemyx 31.08.2021 18:30 # +1
Кокококой язык!
3.14159265 31.08.2021 18:31 # +1
>DllImport "gmp"
Ой. Снова GNU MP Bignum Library.
А вот вроде в исходнике rust нету gmp. Но есть какой-то extern crate rug
Опять?
Очевидно, что сваять на дrustне ничего нельзя - поэтому приходится воровать.
3.14159265 31.08.2021 18:35 # +1
Программа начинается так:
Все вызовы явно ворованы из С.
«Йажа»
Жаба-отребье, как и всякое другое отребье не может ничего родить.
Оно может только воровать, врать и соревноваться с другими инвалидами.
И вот на основе таких примеров с прямыми вызовами ворованных Сишных либ, потом делаются заявления о энегроэффективности и пирфомансе ${govno_lang_name}.
3.14159265 31.08.2021 18:48 # +1
При этом очевидно, что с простым «Си» они не могут соревноваться даже делая сишные вызовы.
Перловцы прямо так и написали.
Desktop 31.08.2021 18:55 # 0
ABryCTOBCKuu_nemyx 31.08.2021 19:04 # 0
В «FPC» я даже встречал честные попытки перевода гнутых библиотек (правда, переводили только те библиотеки, в которых кода немного).
3.14159265 31.08.2021 19:13 # +1
«OCaml»
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-ocaml-7.html
«FPC»
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-fpascal-3.html
«GNAT»
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-gnat-2.html
ABryCTOBCKuu_nemyx 31.08.2021 19:17 # +1
3.14159265 31.08.2021 19:42 # 0
А вот и нет.
Бездарная мразь только что и может: воровать друг у друга и кукарекать.
Desktop 31.08.2021 19:45 # 0
bormand 31.08.2021 19:17 # +1
Реально ни одного языка с альтернативной реализацией?
С другой стороны да, с нуля GMP не выебать. И авторы gmp будут очень рады, если кто-то напишет быстрее: значит ещё есть куда оптимизировать.
3.14159265 31.08.2021 19:25 # +2
Ну там есть примеры в самом низу.
Йажа за 7 секунд (против Сишной секунды).
Но кто туда будет листать? Смотрят же обычно самое лучшее время для ${lang_name}.
Я просто удивился тому что потом результаты такого вот «сравнения языков» используют в пропагандистских методичках для сектантов и питухов.
bormand 31.08.2021 19:27 # +1
3.14159265 31.08.2021 19:29 # +2
Причём честные Хаскел и Govno умудрились обогнать Ruby и Perl
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-ruby-5.html
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-perl-4.html
Которые использовали GMP, и всё-равно позорно слили
Просто для пропаганды берут сверху.
3.14159265 31.08.2021 19:50 # 0
При этом они сливают Сишке в 3-4 раза (что на самом деле очень достойно).
Ибо честная Йажа сливает тюнингованой либе в 12 раз, а FPC в 25 )))
«Julia»
Desktop 31.08.2021 20:46 # +2
никто не хочет пофорсить, кстати?
3.14159265 31.08.2021 20:52 # +2
Он в других числодробильных бенчах достойно выступает на пару с Фортраном.
Причём они, не читеря, там обгоняют некоторые примеры на С/C++/Rust с SSE-интринсиками (!).
Desktop 31.08.2021 21:03 # +1
https://www.zverovich.net/2016/05/13/giving-up-on-julia.html
уже приносил когда-то
3.14159265 31.08.2021 21:15 # 0
К тому же она Гомоиконна.
Desktop 31.08.2021 21:05 # 0
3.14159265 31.08.2021 21:20 # 0
https://github.com/JuliaLang/julia/pull/33946
> индекс массива с 1
Ну мать-мать-ики же.
Desktop 31.08.2021 21:22 # 0
3.14159265 31.08.2021 21:22 # 0
ABryCTOBCKuu_nemyx 31.08.2021 21:06 # 0
С MMX вообще жопа была: инструкции MMX использовали те же регистры, что и инструкции для плавающего питуха, поэтому там ещё нужно было тратить время на переключение режима работы, чтобы данные не распитушило.
Реальный прирост скорости можно было получить, только если пишешь большой кусок кода целиком этими инструкциями.
bormand 31.08.2021 21:11 # 0
3.14159265 31.08.2021 21:16 # +1
Помню Царь лютовал что это говно, и надо юзать стековый FPU.
ABryCTOBCKuu_nemyx 31.08.2021 21:21 # 0
Царь был за числа с фиксированным разделителем (в идеале вообще за целых питухов).
3.14159265 31.08.2021 21:25 # +1
https://govnokod.ru/13422#comment188577
«Я могу писать быстрее и лучше на сишке - мне удобней. Мне для этого не надо как рядовому питушку осиливать Сишку.
Всё должно отражать всё - если твоей конпелятор написан как говно - он и оптимизировать будет как говно. И да, оптимизации не нужны я уже не помню где был тред, помоему на лоре.
Вобще для моего мегаязыка оптимизации не нужны, ибо оптимизации нужны для питухов - там будет удобная ручная предсказуемость, как в ассемблере.
В место питушских переменных - там буду переменные, который на самом деле по умолчанию безымянные регистры. Явный их биндинг на имена, явный ялиасинг. Никаких стеков и прочей ереси.
Никаких автовекторизаций циклов( которые в 50% дают деградацию, допустим гцц(и все другие конпеляторы) по умолчанию вместо стекового фпу года гинерят ссе код, который медленее фпушного и теряют 10-30% производительности.
»
Правда что он имел ввиду я честно говоря не понял.
Desktop 31.08.2021 21:37 # 0
https://xsport.ua/upload/news-photos/14-09-2017-ao/a0YpIcWI.jpg
3.14159265 31.08.2021 23:01 # 0
> Никаких стеков и прочей ереси.
> по умолчанию вместо стекового фпу года гинерят ссе код, который медленее
CEHT9I6PbCKuu_nemyx 01.09.2021 06:03 # +3
Потом жертве внушают, что «SSE» хуже пидораса стека.
Потом предлагают сопоставить эти два тезиса.
ABryCTOBCKuu_nemyx 31.08.2021 21:22 # 0
https://govnokod.ru/13189#comment182595
3.14159265 31.08.2021 21:26 # +2
https://govnokod.ru/13180#comment181435
3.14159265 31.08.2021 19:50 # 0
Не знал что в «Хаскелл» возможны утечки памяти.
bormand 31.08.2021 19:55 # +1
Это не утечки, а OOM'ы скорее. Вечная проблема ленивых вычислений -- или стек порвётся или куча.
bormand 31.08.2021 20:12 # +3
ISO 31.08.2021 20:15 # +1
guest6 31.08.2021 18:51 # +2
Но как потенциальному пользователю языка мне приятно осознавать, что у меня будет шанс подключить сиштушню и работать с ней через удобный синтаксис более высокоуровневого языка.
3.14159265 31.08.2021 18:57 # +1
И переносимость/надёжность кода падает до переносимости и надёжности Сишки.
Нету в винде libgmp — пердолься как Сёма, собирай. Проси на ГК чтобы тебе сделали репу бинарными пакетами под XP.
ABryCTOBCKuu_nemyx 31.08.2021 19:21 # +1
Ни математического доказательства корректности, ни bounds checking...
> переносимости
Даже хвалёную сборку нативных образов в Дотнете использовать не можем (защитники Дотнета кукарекают, что он на каждом процессоре генерирует оптимальный для него код), потому что используем готовый бинарник, полученный из сишки, оптимизированный под неизвестный процессор.
bormand 31.08.2021 19:34 # 0
-fsanitize=address
bormand 31.08.2021 18:59 # +1