Jump to content

Игра «Бенчмарки компьютерного языка»

Игра Computer Language Benchmarks Game (ранее называвшаяся The Great Computer Language Shootout ) — это бесплатный программный проект, предназначенный для сравнения того, как заданное подмножество простых алгоритмов может быть реализовано в различных популярных языках программирования .

Проект состоит из:

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

Поддерживаемые языки [ править ]

Из-за ограниченности ресурсов поддерживается только небольшое подмножество распространенных языков программирования, на усмотрение оператора игры. [1]

Метрики [ править ]

Оцениваются следующие аспекты каждой конкретной реализации: [2]

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

Тестовые программы [ править ]

С самого начала это был выбор дизайна, включающий только очень простые игрушечные задачи, каждая из которых представляет собой разную задачу программирования. [3] Это дает пользователям эталонной игры возможность тщательно изучить различные реализации. [4]

История [ править ]

До 2007 года проект был известен как The Great Computer Language Shootout . [5]

Порт для Windows поддерживался отдельно в период с 2002 по 2003 год. [6]

Исходники заархивированы на GitLab. [7]

На GitHub также есть более старые версии. [8]

Проект постоянно развивается. Список поддерживаемых языков программирования обновляется примерно раз в год в соответствии с тенденциями рынка. Пользователи также могут предлагать улучшенные решения любой проблемы или предлагать усовершенствование методологии тестирования. [9]

Предостережения [ править ]

Сами разработчики подчеркивают, что тем, кто проводит исследования, следует проявлять осторожность при использовании таких микробенчмарков:

[...] тесты JavaScript мимолетно малы и ведут себя существенно иначе, чем реальные приложения. Мы задокументировали многочисленные различия в поведении и на основании этих измеренных различий пришли к выводу, что результаты, основанные на тестах, могут ввести в заблуждение разработчиков движка JavaScript. Более того, мы наблюдаем интересное поведение в реальных приложениях JavaScript, которое тесты не демонстрируют, что позволяет предположить, что ранее неисследованные стратегии оптимизации могут быть продуктивными на практике.

Влияние [ править ]

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

Различные исследовательские статьи были основаны на тестах, результатах и ​​методологии. [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [ чрезмерное цитирование ]

См. также [ править ]

Ссылки [ править ]

  1. ^ «Игра в тесты компьютерного языка» . тестыgame-team.pages.debian.net/benchmarksgame . Проверено 29 мая 2018 г.
  2. ^ «Как измеряются программы – Игра в тесты компьютерного языка» . тестыgame-team.pages.debian.net/benchmarksgame / . Проверено 29 мая 2018 г.
  3. ^ «Почему игрушечные программы? – Игра «Компьютерные тесты языка»» . тестыgame-team.pages.debian.net/benchmarksgame . Проверено 29 мая 2018 г.
  4. ^ «Описание n-body (64-битный четырехъядерный процессор Ubuntu) – Игра по тестам компьютерного языка» . тестыgame-team.pages.debian.net/benchmarksgame . Проверено 29 мая 2018 г.
  5. ^ «Доверяй и проверяй – игра по тестам компьютерного языка» . тестыgame-team.pages.debian.net/benchmarksgame . Проверено 29 мая 2018 г.
  6. ^ «Великая перестрелка по компьютерному языку Win32» . Дада.perl.it. ​Проверено 13 декабря 2017 г.
  7. ^ "архив-alioth-benchmarksgame" . salsa.debian.org/benchmarksgame-team . Проверено 29 мая 2018 г.
  8. ^ Тиль, Себастьян (24 октября 2017 г.). "benchmarksgame-cvs-mirror: git-зеркало репозитория CVS тестов тестовой игры" . Гитхаб . Проверено 13 декабря 2017 г.
  9. ^ «Представьте свою собственную программу — игру «Компьютерные тесты языка»» . тестыgame-team.pages.debian.net/benchmarksgame . Проверено 29 мая 2018 г.
  10. ^ Кевин Уильямс; Джейсон МакКэндлесс; Дэвид Грегг (2009). «Динамическая интерпретация языков динамических сценариев» (PDF) . Проверено 25 марта 2017 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  11. ^ Тобиас Ригстад; Франческо Заппа Нарделли; Сильвен Лебресн Йохан; Остлунд Ян Витек (17–23 января 2009 г.). Интеграция типизированного и нетипизированного кода в языке сценариев (PDF) . ПОПЛ'10. Мадрид, Испания . Проверено 25 марта 2017 г.
  12. ^ Лерш, Карл (17–18 апреля 2009 г.). Напишите Fast Ruby: все дело в науке (PDF) . Рубиновая конференция Золотые Ворота. Сан-Франциско, Калифорния . Проверено 25 марта 2017 г.
  13. ^ Дж. Ширако; Д. М. Пейшотто; В. Саркар; В. Н. Шерер III (2009). Аккумуляторы Phaser: новая конструкция сокращения для динамического параллелизма (PDF) . Международный симпозиум IEEE по параллельной и распределенной обработке . Проверено 25 марта 2017 г.
  14. ^ Раджеш Кармани, Амин Шали и Гул Ага (2009). «Акторные структуры для платформы JVM: сравнительный анализ» (PDF) . В материалах 7-й Международной конференции по принципам и практике программирования на Java . Проверено 26 марта 2017 г.
  15. ^ Брунталер Стефан (2010). Встроенное кэширование и ускорение . Европейская конференция по объектно-ориентированному программированию (ECOOP). Том. Объектно-ориентированное программирование. стр. 429–451. дои : 10.1007/978-3-642-14107-2_21 .
  16. ^ Продромос Геракиос; Николаос Папаспиру; Константинос Сагонас (23 января 2010 г.). Многопоточность без гонок и с сохранением памяти: проектирование и реализация в Cyclone (PDF) . Материалы 5-го семинара ACM SIGPLAN «Типы в языковом проектировании и реализации». Мадрид, Испания. стр. 15–26 . Проверено 25 марта 2017 г.
  17. ^ Слава Пестов; Дэниел Эренберг; Джо Грофф (18 октября 2010 г.). Фактор: язык программирования на основе динамического стека (PDF) . DLS 2010. Рено/Тахо, Невада, США . Проверено 25 марта 2017 г.
  18. ^ Андрей Хомеску; Алекс Сухан (24 октября 2011 г.). HappyJIT: трассирующий JIT-компилятор для PHP (PDF) . ДЛС'11. Портленд, Орегон, США . Проверено 25 марта 2017 г.
  19. ^ Винсент Сент-Амур; Сэм Тобин-Хохштадт; Матиас Феляйзен (19–26 октября 2012 г.). Коучинг по оптимизации: оптимизаторы учатся общаться с программистами (PDF) . ООПСЛА'12. Тусон, Аризона, США . Проверено 25 марта 2017 г.
  20. ^ Винг Ханг Ли; Дэвид Р. Уайт; Джереми Сингер (11–13 сентября 2013 г.). Языки, размещенные на JVM: они говорят то, что говорят, но идут ли они по пути? (PDF) . Материалы Международной конференции 2013 г. «Принципы и практика программирования на платформе Java: виртуальные машины, языки и инструменты». Штутгарт, Германия. стр. 101–112 . Проверено 25 марта 2017 г.
  21. ^ Айбек Саримбеков; Андрей Подзимек; Любомир Булей; Юди Чжэн; Натан Риччи; Уолтер Биндер (28 октября 2013 г.). Характеристики динамических языков JVM (PDF) . ВМИЛ '13. Индианаполис, Индиана, США . Проверено 25 марта 2017 г.
  22. ^ Брэдфорд Л. Чемберлен; Бен Альбрехт; Лидия Дункан; Бен Харшбаргер (2017). Вступая в бой: запись об игре Chapel's Computer Language Benchmark (PDF) . Проверено 25 марта 2017 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dfcebab99322bc5fe6580dd1e1f2de37__1708901160
URL1:https://arc.ask3.ru/arc/aa/df/37/dfcebab99322bc5fe6580dd1e1f2de37.html
Заголовок, (Title) документа по адресу, URL1:
The Computer Language Benchmarks Game - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)