Игра компьютерных тестов ( ранее называвшийся The Great Computer Language Shootout ) - это бесплатное программное обеспечение проект для сравнения того, как данное подмножество простых алгоритмов может быть реализовано в различных популярных программах. languages .
Проект состоит из:
Из-за ограничений ресурсов поддерживается только небольшое подмножество общих языков программирования, на усмотрение оператора игры.
Список поддерживаемых языковСледующие аспекты каждого для данной реализации измеряются:
Обычно для одной и той же проблемы можно увидеть несколько решений на одном языке программирования. Это подчеркивает, что в рамках данного языка может быть предложено решение либо с высокой абстракцией, либо с эффективным использованием памяти, либо быстрым, либо с лучшим распараллеливанием.
С самого начала выбор пал на очень простые игрушечные задачи, каждая из которых создавала различные задачи программирования. Это дает пользователям Benchmark Game возможность тщательно изучить различные реализации.
Проект был до 2007 года известный как The Great Computer Language Shootout.
Порт для Windows поддерживался отдельно между 2002 и 2003 годами.
Исходные коды были заархивированы на GitLab.
Есть также старые форки на GitHub.
Проект постоянно развивается. Список поддерживаемых языков программирования обновляется примерно раз в год в соответствии с тенденциями рынка. Пользователи также могут представить улучшенные решения любой из проблем или предложить уточнение методологии тестирования.
Сами разработчики подчеркивают тот факт, что тем, кто проводит исследования, следует проявлять осторожность при использовании таких микробенчмарков:
[...] тесты JavaScript мимолетно малы, и их поведение существенно отличается от поведения реальных приложений. Мы задокументировали многочисленные различия в поведении и на основании этих измеренных различий пришли к выводу, что результаты тестов могут ввести в заблуждение разработчиков движка JavaScript. Кроме того, мы наблюдаем интересное поведение в реальных приложениях JavaScript, которое не удается продемонстрировать в тестах, что свидетельствует о том, что ранее неизученные стратегии оптимизации могут оказаться продуктивными на практике.
Результаты тестов выявили различные проблемы с компилятором. Иногда конкретному компилятору не удавалось обработать необычные, но в остальном грамматически правильные конструкции. В других случаях производительность во время выполнения была ниже ожиданий, что побудило разработчиков компиляторов пересмотреть свои возможности оптимизации.
Различные исследовательские статьи были основаны на тестах, их результатах и методологии.