LINUX.ORG.RU

альтернативы computer benchmark game

 


2

2

Всем привет! Я точно помню, что кто-то из форумчан делал свой проект с бенчмарками, сравнивающими разные ЯП. Напомните, пожалуйста, кто это был и где искать?

И вообще, нужна наконец какая-то альтернатива этому отвратительному продажному computer benchmark game, который очевидным образом пиарит жабу.

★★★★★

Не в тему, но в одном автоматизированном курсе по алгоритмам на степике - многие тесты алгоритмов проходили при наивном решении на c++, на других языках не проходили, даже на хвалёной java, которая якобы с jit должна наносекунды максимум сливать плюсовой реализации :)

onhydro ()
Ответ на: комментарий от den73

Там только фибоначчи.

В таком виде оно неплохо отражает производительность вызовов и работы с классами, что позволяет хоть и грубо, но оценить производительность на реальных задачах и, главное, в таком виде тесты писать просто. Достаточно минут 5-10-20 повтыкать в незнакомый язык, чтобы написать такую реализацию. Если это, конечно, не Brainfuck какой-нибудь :D

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

Никто не спорит, но всё же на computer benchmark game просто тупо намного больше тестов. Даже если сделать скидку на предвзятость, всё равно неплохо. Ну и есть разные аспекты, влияющие на производительность - их нужно проверять более чем на одном тесте. Можно было бы взять rosettacode, к примеру, как источник (если оно ещё живо).

den73 ★★★★★ ()
Ответ на: комментарий от den73

А всегда ли бенчмарки создаются теми, кто хорошо разбирается в языке? Если по хорошему, то вон даже лисп может обогнать в разы java и по-моему даже си. Помните же эту эпическую историю? Правда, потом тест удалили.

Просто обычная позиция при составлении тестов такая: а давайте-ка будем составлять тесты так, как будут писать «обычные» программисты, фактически, без оптимизаций. И что тогда делать с результатами таких тестов? Выбросить?

Если человек собрался писать на каком-то языке, то, скорее всего, и собирается использовать язык на все 100%. Поэтому тесты не всегда актуальны.

А вот тест с Фибоначчи мне понравился. Он мало подвержен оптимизациям.

dave ★★★★★ ()
Ответ на: комментарий от dave

А зачем тест, не повержанный оптимизациям? Идея сайта «соревнование» изначально была хорошей, пока они не продались.

Программы мог предложить любой желающий. Естественно, хорошее соревнование - это соревнование с честным судейством, и тут они захромали.

Нужно ведь сравнивать, по-хорошему, не то, как будет работать язык без оптимизаций, а как будет работать этот язык в руках мастера. Правда, тут можно отдельно сравнивать идиоматичный код и вылизанный по скорости код. Но это уже дальнейшие нюансы.

Но не суть, мы же сейчас поболтаем и никто всё равно ничего не сделает. Я, пожалуй, запощу в job предложение. Если кто-нибудь вызовется, вернусь сюда и буду с шапкой ходить по кругу.

den73 ★★★★★ ()
Ответ на: комментарий от den73

Вижу, что Haskell чуточку лучше, чем Java и .NET, но хуже с небольшим отрывом, чем Си++. Rust оказался даже круче, чем Си, хотя совсем чуть-чуть, почти равные. Все правильно. Все так и должно быть, хотя от Си ожидал большего, но на нем сложнее писать и оптимизировать.

А что именно смущает?

dave ★★★★★ ()
Ответ на: комментарий от dave

Это ты сейчас увидел хорошую часть. А плохая часть состоит в том, что они произвольно выкинули LuaJit, который в 50 раз быстрее простого Lua. в целом на уровне Си, а кое-где - быстрее. Выкинули D и т.п. Если посмотреть на сайт, то созадётся впечатление, что целью существования игры является продвижение Java. Это видно из картинок «какой язык самый быстрый». Языки разбиты (произвольно) на две группы и помещены на две картинки. На первой картинке более медленные языки, на второй - более быстрые. Первая картинка начинается с Java. Недостаточно внимательный или достаточно внушаемый посетитель уйдёт с мнением, что Java - самый быстрый язык на свете.

При этом там надуманная причина для существования двух картинок - якобы они нужны не для того, чтобы Java вывести на первое место, а для того, что можно по-разному сравнивать языки. Как ни сравнивай, Java медленнее С++.

Можно только гадать, в какой степени сами задания и условия тестов были оптимизированы под Java.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от anonymous

один и тот же код написанный соответствующе можно скомпилить как c++ либо как с.

Код, написанный на си и откомпилированный на крестах становится плюсовым?

yyk ★★★★★ ()
Ответ на: комментарий от den73

А зачем тест, не повержанный оптимизациям? Идея сайта «соревнование» изначально была хорошей, пока они не продались.

Изначальная идея была в том, чтобы понять что можно ожидать от языка. Эту идею просрали буквально сразу, т.к. для этой оценки нужно ограниченное время на написание теста. Т.е. в какой-то день, заранее оговоренный, нужно высыпать тестовые задания, а через неделю подвести итог. Можно потом повторить, но задания каждый раз должны быть разные. В этом весь цимес. Иначе смысла нет. Реализация теста, которую шлифуют достаточно долго, догонит Си в бесконечной перспективе (можно на бейсике написать ассемблер и на этом ассемблере решить задачу - формально решение будет на бейсике). Так что сейчас этот сайтик показывает только то, насколько лениво (или живо) сообщество того или иного языка.

no-such-file ★★★★★ ()
Ответ на: комментарий от den73

Выкинули D и т.п.

Это не те самые бенчмарки, где D показал очень хорошие результаты (не самые лучшие, но очень хорошие), после чего автор бенчмарков его удалил, а в ответ почему - сказал что мы живем в свободном мире, хотите делайте свой сайт с бенчмарками? Более того, этот чувак еще и мониторил форум дишников и когда там вспоминали про этот момент обязательно вступал в полемику в свою защиту с этим самым весомым аргументом. Веселый человек.

yetanother ()
Ответ на: комментарий от no-such-file

ограниченное время на написание

Выродится в олимпиадное программирование. Копипаста готовых решений, асма на васике. Какие языки (программные средства) лидируют в олимпиадном программировании? Ничего против олимпиадного программирования не имею.

anonymous ()
Ответ на: комментарий от anonymous

Выродится в олимпиадное программирование

Там время не просто ограниченно, а очень ограниченно и поэтому всё упирается не столько в язык, сколько в человека. Для оценки языка времени на задачу должно быть достаточно с избытком для того чтобы представить не наколенное поделие, но и не бесконечно много, чтобы можно было за год-другой написать компилятор dsl под конкретную задачу.

Копипаста готовых решений, асма на васике

Так оно в это и выродилось уже. Смотришь код, вроде бы на питоне, а внутри одно дёрганье gmp.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от den73

точно определить, что можно и что нельзя

А как это определить? Это априори субъективщина. ИМХО им нужно было ввести категории, например с кодогенерацией и без, и оценивать отдельно.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Просто мысли в слух. Отрезок вещественных чисел равномощен всему множеству вещественных чисел, континуум. Ограничение повлияет только на начальном этапе. В перспективе все языки, если не вымрут, накопят достаточное количество готовых решений для новых «шаблоных» задач. И в данный конкретный момент будет выигрывать стильный-модный-молодежный, то есть «объективность» будет страдать.

anonymous ()
Ответ на: комментарий от den73

Это тоже плохо пахнет. Но удивляет, почему D-шники оказались такими лохами и не форкнули :)

Так наоборот, лохов не нашлось форкать ))

Это ж надо раскручивать, сопровождать и т.д. И ради чего? Все эти бенчмарки субъективщина еще та.

yetanother ()
Ответ на: комментарий от yetanother

Сопровождать такой сайт не так много труда - несопоставимо с трудом по разработке D. А PR-эффект был бы отличный. Не такая уж и субъективщина. Когда я уткнулся в то, что CL недотягивает до Си, я стал думать, а почему, и узнал кое-что новое.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)

врядли ты обо мне, но попиариься не помешает

я делал подобие бенчмарков, все компилиться в четырех языках/средах (C++/java/JS/wasm)
все тут https://github.com/danilw/cputests работает из браузера тоже

(это не серьезный бенчмарк, просто пробовал кодить всякое)

missxu ()
Ответ на: комментарий от missxu

есть известный (скандально) сайт с бенчмарками. Оказывается, про него мало кто знает. Прочитай всю тему. Может тебе не будет влом поднять копию.

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Сопровождать такой сайт не так много труда - несопоставимо с трудом по разработке D.

Ну с разработкой языка конечно сравнения никакого нет, но тем не менее объем работ безусловно большой. Ведь нужно будет еще и поддерживать бенчмарки других языков. И нужно продвигать этот сайт, что тоже труд.

yetanother ()
Ответ на: комментарий от den73

Хайп - он есть хайп. Люди потом обязательно разберутся, что на самом деле, но время и деньги-то уже потрачены. Но в языках программирования, как в любом профессиональном инструменте, можно выехать и без хайпа. Тот же Ди развивается без всякой рекламы, и сам язык, и инфраструктура. И коммерческих пользователей добавляется. Хотя с хайпом было бы все, конечно быстрее.

yetanother ()