Computer Language Benchmarks Game — хватит самодурства

    Появился сервис лет 10 назад назывался «Computer Language Shootout». Сейчас он называется The Computer Language Benchmarks Game. Сервис давал хоть какую-то возможность бегло оценить производительность реализаций языков программирования. Тема, конечно, пикантна. Время идёт, интерес к теме не падает. Есть одно «но». Cервис и раньше-то был весьма специфичен, но теперь дело совсем худо. Это уже никакая не оценка производительности. Это уже просто призма личного Эго текущего владельца, которая убивает своим космическим лучом всё дело.

    А ведь именно через такие сервисы люди должны бы узнать про разные великолепные PyPy. Но не угодили они видите ли владельцу. 10 лет люди терпят это!

    В чём ключевые проблемы существующего сервиса?

    1. ЧСВ владельца

    2. ЧСВ владельца

    3. посетители предлагают имплементации языков — он их просто не принимает

    4. посетители предлагают имплементации задач — он их просто не принимает

    5. посетители показывают, что некое решение «нечестно» искусственно вводит в имплементацию решения задачи оптимизирующие конструкции, делающие сравнения бессмысленными — владелец игнорирует.

    6. посетители показывают, что неспособность автора откомпилировать то или это не должна выглядеть как провал языка на данной задаче — ему по барабану.

    7. неуважительное, местами просто хамоватое отношение к людям, которые приходят с новыми «заплатками».

    Кто может поднять запятнанное знамя и вывести это дело на хоть сколько-нибудь уважительный уровень? Всё что нужно это любовь к теме «производительность реализаций языков программирования» и время. Остальное приложится.

    Извините за этот крик души. Но ещё 10 лет ждать сил нет.
    Share post

    Comments 48

      0
      уже три минуса. Друзья, объясните хоть свою позицию. Вам нравится сервис? Не нравится форма подачи?
        +9
        Мне кажется многим не нравится просто формат поста в стиле «Извините, наболело», который одно время просто переполнял всякие баши, выбиваясь из контекста.

        В этом посте лично я не увидел конкретики.

        Неуважительно отвечает? ссылки на сообщения, мнения.

        Есть результаты, отличные от тех кто на сайте — покажите.

        Сам сайт мне тоже не нравится. Подозрительные результаты + неудобное юзабилити. Но как и к сотне других сайтов, которые не нравятся подход простой — просто не заходите на них. Или пишите альтернативу.
        +9
        Не понял. Сумбурно как-то.
          0
          о, хоть какая-то информация, спасибо. Что стоит поменять? ДНК менять уже поздно :)
          0
          а вообще жаль, что сигнал утонул. Это безобразие будет и дальше там продолжаться. А ведь мог бы кто-то из молодых вдохнуть новую жизнь в бенчмаркинг имплементаций языков программирования.
            0
            Так про это и надо было написать.
            Не про то, что проблемы-то оказывается, у алиота есть, вот досада.

            А про своё виденье нового, крутого проекта сравнений. И почему он на эти грабли не наступит. Оно и интереснее и полезнее было бы.
            Глядишь, и вдохновился бы кто.
            +10
            А что мешает вам самому взяться и поднять?
              –3
              только время. профессионально — никаких проблем нет.
                +13
                Почему вы считаете, что ваше время ценнее, чем время какого-нибудь Анонима?
                  –1
                  Потому что Анонимов много. У какого-нибудь время менее ценное.
                    0
                    А почему вы считаете, что знаете, что я считаю?

                    еще 5 лет назад было время, но не было желания лезть в параллель работющего (и может быть развивающегося хобби) других (возможно увлечённых своим делом) людей. Теперь иначе. Но интерес к теме остался.

                    Спасибо за дружественный пост.

                      0
                      Возникло такое впечатление) Не берите близко к сердцу, я без зла.
                  +6
                  Я возьмусь :)
                  Тем более, что ранее идея подобного сервиса уже возникала, а в данный момент есть время и ресурсы для его реализации.
                  Постараюсь реализовать что-то более открытое и децентрализованное.

                  P.S. Господа, заинтересованные в данном вопросе, рад буду выслушать любые предложения.
                    0
                    вот! решпект, не сдавайтесь! на этой странице: shootout.alioth.debian.org/help.php#contribute

                    в самом низу увидите пару строк про CVS и GitHub — можно начать с того, чтобы глянуть на это.

                      0
                      Да, спасибо, видел.
                      0
                      Кстати, будете собирать много-много имплементаций под одной крышей — вот вам идейка.
                      Графа «Распространённость», которая показывает просто количество страниц в гугле, найденных по названию компилятора/интерпретатора.
                      Тоже важный параметр, на самом-то деле.
                        0
                        Думал сделать своего рода iLike buttons, для оценки распространенности. Впрочем, как вариант, по статистике поисковых запросов — тоже неплохо, спасибо )
                    +2
                    Странно что в сравнении нет icc
                      +3
                      там много странного.
                      +1
                      Автор не принял D потому что он… недостаточно сильно отличается от C++.

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

                      Реализация какой-то (лент искать) задачи на CL порадовала. Алгоритм был реализован точно, но предварительно генерировался высокопроизводительный машинный код в зависимости от конкретных входных параметров. :3 Работала за 0.7 времени gcc, при том что время компиляции включалось в рантайм, в отличие от gcc. Помечена альтернативной. В других случаях алгоритм вообще слабо напоминает официальный — альтернативным не помечается.

                      vak, извините, плюсик поставить не могу.
                        0
                        naryl, всё ОК, я бы лучше не сказал!
                        +7
                        А чего такого-то? Оно же там opensource. Берёте, качаете это всё, делаете хранилище, заливаете на GitHub и коммитите туда всё, что душе угодно. И призываете коммитить туда всех других недовольных. Многие так и делают. А на товарища Gouy наезжать зачем? Вообще, этот весь проект — его хобби, и ничего он не обязан Вам делать, ведь, Вы ему денег не платите…
                          +1
                          я до много лет был единственным админом в OpenCV maillist. Просто тянул эту не слишком забавную лямку ради этого важного проекта. Хобби. Я вот думаю, наверно мне стоило развести всякую антисоциальную активность — ведь не за деньги же работаю, чего не оттянуться на всяких туманных чуваках которые и FAQ-то прочесть не могут? А дальше как у вас по тексту.

                          Норм? Или?
                            +1
                            А почему это, собственно, не нормально? Половина opensource именно такая, с антисоциальными авторами. Их вечно ругают, за то что они тот патч не принимают, этот баг считают фичей, и нагло закрывают отчёты об ошибках без комментариев, но при этом все пользуются результатами их работы. GLIBC такая, например. Компиляторы GCC, да и сам Линус Торвальдс, совсем даже и не душка в общении: когда он говорит, что всех, с кем не согласен считает идиотами, это он не кокетничает, это так и есть.

                            Проблема именно в том, что все эти проекты вырастают из хобби, а психологически, человек считает хобби частью самого себя, и всех тех, кто пытается ему указать, что кривоватые у него результаты в хобби, он подсознательно заносит в список врагов…

                            Если Вы вот такой вот замечательный человек, это же не означает, что все другие должны быть такими же вот замечательными и не авторитарными.

                            Но чем хорош opensource, так это тем, что можно сделать fork и показать авторам проектов, что вот не правильная у них социальная политика :) перетянуть пользователей к себе, и всё такое прочее. Нормальная конкуренция, между прочим, и многим, кстати, позиция тех же мэйнтейнеров GLIBC нравится своей жёсткостью и непримиримостью. Как бы… Тут нет идеала и готового рецепта, как себя вести. Но у Вас есть свобода и возможность вести себя иначе и подавать другим пример. Так пользуйтесь ей, зачем тратить силы на наезды на человека, который не смотря на все его косяки сделал замечательный инструмент? Возьмите, да улучшите инструмент и сообщество вокруг него… Всем этим самым пользу принесёте. А критиковать не конструктивно… Да ну… Жизнь коротка, надо дело делать, а не слова.
                              0
                              ", который не смотря на все его косяки сделал замечательный инструмент?"

                              не делал он этот инструмент.

                              а мы сейчас делаем другие дела.
                          0
                          На сайте достаточно тяжело разобраться, что к чему. Если кто-то возьмется за реализацию аналогичного проекта, пожалуйста, не делайте сайт в таком же духе, подумайте о юзабилити. Мне, например, было бы особенно интересно видеть графики потребления памяти \ времени для нескольких языков сразу, чтобы представлять масштаб.
                            0
                            «графики потребления памяти \ времени для нескольких языков сразу»
                            Они там есть на самом деле: shootout.alioth.debian.org/u64q/which-language-is-best.php
                            а внизу, в таблице, можно настраивать как угодно, довольно гибко, что хотите посмотреть.
                              0
                              Спасибо, посмотрел. По-моему, даже слишком гибко настраивается. Глаза разбегаются от такого количества настроек.
                          • UFO just landed and posted this here
                              +2
                              фигушки. 80% того, что вы написали верно (и касательно разогрева для инициации JIT), но заключение нехорошее. Мне интересно грубо понимать простые вещи:

                              1. насколько сегодня CPython медленнее в обыкновенных арифметических операциях a. на списках b. на array, чем, скажем gcc. мне это тупо надо, чтобы грубо оценить, нужно ли «узкий» модуль пытаться переписывать.

                              2. хочу видеть сколько я смогу выиграть на работе со строковыми данными, если уходить с языка А на язык Б.

                              3. Хочу видеть кто из динамических/функциональных языков по скорости не более, чем в 2-3 раза в среднем медленнее, чем С. Тут же хочу видеть кто приблизительно дотянулся до уровня SBCL.

                              etc, etc, etc

                              и меня не интересует точность выше чем 3х относительно С!!!

                              но я хочу знать, кто находится в классах:

                              не медленнее, чем 3х С

                              «10х С»

                              «50х С»

                              и всё :)
                              • UFO just landed and posted this here
                                  0
                                  ниже ответил.
                                –2
                                Так там у задачек размерность-то солидная. Java вполне может успевать на них и прогреваться. Может быть, это, конечно, и не серверные сценарии работы, когда система остаётся в прогретом состоянии, но вообще, показательно. Именно по той причине, что бенчмарки эти микро, и на прогрев ну никак не может тратится 50% времени работы приложения. Значит, есть задержки связанные именно с особенностями семантики языка программирования, которые съедают производительность. ЧТД.
                                • UFO just landed and posted this here
                                    –2
                                    Не правда. Я перемерял результаты именно с Java (мне актуально для научной работы), с большим числом итераций, main переименовывал и запускал её 100500 раз, и ничего оно существенно не прогревалось. Может быть, на пару секунд быстрее один запуск срабатывал в сравнении с холодным стартом. Ну было, 20 секунд, против 22 и против 15 у Си.

                                    То есть, общую картину, эти микробенчмарки увидеть позволяют.
                                    • UFO just landed and posted this here
                                      –2
                                      Да, и, кстати, программе на Си тоже нужно запускаться, линковаться с библиотеками, настраивать связи с so — тоже не дешёвое удовольствие. Так что… Нет. Ваши аргументы на то, что меряется только лишь startup (вы в самом деле считаете, что java стартует около 10 секунд?), не состоятельны.
                                      • UFO just landed and posted this here
                                          –2
                                          Да почему нерелевантным-то? Не могу понять, вы какие-то утверждения высказываете абстрактные, про кучу факторов и прочее. Надо смотреть на программу, и делать конкретные выводы. Например, ваша любимая Java совсем не проигрывает GCC в задаче n-body, потому что там доступы к массивам регулярные, с гарантированным отсутсвием выходов за границы, такой код хорошо оптимизируется и Java выступает вровень с GCC. Intel'овский же компилятор уделывает Java и GCC, потому что активно разворачивает циклы и использует SSE3. Программа на FORTRAN уделает программу на Си, потому что там нет работы с указателями, и нет структур, и программисту придётся хранить всё в массивах, при чём так, что доступ к ним будет ещё оптимальнее, чем доступ к структурам в Си.

                                          А когда доступы не регулярные и нужно постоянно пересчитывать индексы, как в k-nucleotide, Java проигрывает Си.

                                          Всё, imho, очевидно. В каждом конкретном случае объяснение есть. А startup тут в процентном соотношении небольшой, потому как (ещё раз) кода в каждом случае не более килобайта, сложных внешних ссылок у него нет, а пространство итераций огромное, программы работают больше 10 секунд.
                                  +1
                                  «Штука в том, что микробенчмарки вам практически никогда не скажут,»

                                  ну, просто любимый посыл. вот у меня сейчас опять компактный код в одну страницу, но на двое суток обсчёта. хочу глянуть в микробенчмарки по скорости работы со словарями, бо в них 90% времени проводится. Оптимизировать чистенький код пока не вижу смысла. Мне застрелиться, или я имею таки право на эти хреновы микробенчмарки?
                                  • UFO just landed and posted this here
                                      0
                                      "… Поэтому-то ценность CLBG как проекта асимптотически стремится к нулю."

                                      у вас удивительная способность писать мудро о важных вещах и в конце разрушать всё выводами. Я не хочу грызть вашу самооценку, в этом нет никакого смысла ни мне, ни вам. Обобщу упрощённо, мне этот проект интересен уже 10лет. Если появится боец, способный это дело поднять на новый уровень, я буду рад. И поэтому слышать, что ассимптотика (не пойми вдоль чего) осмысленности стремится к нулю — звучит в моих ушах весьма специфично — предлагаю закрыть эту ветку.
                                      • UFO just landed and posted this here
                                          0
                                          Все-таки непонятно — что нужно сделать, чтобы сделать этот сервис более адекватным. Какие есть идеи?
                                            –3
                                            А он и так адекватен тем задачам, которые решает. Там могут быть проблемы чисто с политикой Исаака (который всем рулит), когда он не принимает какие-нибудь решения и языки программирования, и с юзабилити сайта, но сама основная идея очень даже true-Ъ
                                      +1
                                      в интернете кто-то неправ…
                                      • UFO just landed and posted this here
                                          0
                                          и ещё год прошел…

                                          Only users with full accounts can post comments. Log in, please.