stringtranslate.com

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

Игра 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 г.

Внешние ссылки