Введение

Сравнение относительной производительности компьютеров путем запуска одной и той же программы на всех из них.

В информатике, бенчмарк (эталонный тест) – это выполнение компьютерной программы, набора программ или других операций для оценки относительной производительности объекта, как правило, посредством проведения ряда стандартных тестов и испытаний. Термин "бенчмарк" также часто используется для обозначения самих тщательно разработанных программ для проведения бенчмаркинга. Бенчмаркинг обычно связан с оценкой характеристик производительности компьютерного оборудования, например, производительности центрального процессора (ЦП) в операциях с плавающей точкой, но существуют случаи, когда эта методика применима и к программному обеспечению. Программные бенчмарки, например, используются для тестирования компиляторов или систем управления базами данных (СУБД). Бенчмарки предоставляют способ сравнения производительности различных подсистем в разных архитектурах чипов/систем. Бенчмаркинг, являющийся частью процесса непрерывной интеграции, называется непрерывным бенчмаркингом.

Цель

По мере развития компьютерной архитектуры стало все сложнее сравнивать производительность различных компьютерных систем, просто глядя на их характеристики. Поэтому были разработаны тесты, позволяющие сравнивать различные архитектуры. Например, процессоры Pentium 4 обычно работали на более высокой тактовой частоте, чем процессоры Athlon XP или PowerPC, что не обязательно означало большую вычислительную мощность; процессор с более низкой тактовой частотой мог работать так же хорошо или даже лучше, чем процессор с более высокой частотой. См. BogoMips и миф о мегагерцах. Бенчмарки предназначены для имитации определенного типа рабочей нагрузки на компонент или систему. Синтетические бенчмарки делают это с помощью специально созданных программ, которые создают эту нагрузку на компонент. Прикладные бенчмарки запускают реальные программы в системе. Хотя прикладные бенчмарки обычно дают гораздо более точную оценку производительности в реальных условиях на данной системе, синтетические бенчмарки полезны для тестирования отдельных компонентов, таких как жесткий диск или сетевое устройство. Бенчмарки особенно важны при разработке процессоров, предоставляя архитекторам возможность измерять и находить компромиссы при принятии микроархитектурных решений. Например, если бенчмарк выделяет ключевые алгоритмы приложения, он будет содержать аспекты, критичные для производительности этого приложения. Запуск этого гораздо меньшего фрагмента на циклическом симуляторе может дать подсказки о том, как улучшить производительность. До 2000 года архитекторы компьютеров и микропроцессоров использовали SPEC для этих целей, хотя Unix-ориентированные бенчмарки SPEC были довольно объемными и, следовательно, неудобными в использовании целиком. Известно, что производители компьютеров настраивают свои системы для демонстрации нереально высокой производительности в бенчмарках, которая не воспроизводится в реальных условиях. Например, в 1980-х годах некоторые компиляторы могли обнаруживать конкретную математическую операцию, используемую в известном бенчмарке для операций с плавающей точкой, и заменять ее более быстрой математически эквивалентной операцией. Однако такое преобразование редко было полезно за пределами бенчмарка до середины 1990-х годов, когда архитектуры RISC и VLIW подчеркнули важность технологии компиляции в отношении производительности. В настоящее время компании-разработчики компиляторов регулярно используют бенчмарки для улучшения не только собственных результатов, но и производительности реальных приложений. Процессоры с большим количеством исполнительных устройств — такие как суперскалярные процессоры, VLIW-процессоры или процессоры с перенастраиваемой архитектурой — обычно имеют более низкую тактовую частоту, чем последовательные процессоры с одним или двумя исполнительными устройствами, при условии, что они построены на транзисторах с одинаковой скоростью. Тем не менее, процессоры с большим количеством исполнительных устройств часто выполняют задачи в реальных условиях и бенчмарки быстрее, чем, казалось бы, более быстрые процессоры с высокой тактовой частотой. Учитывая большое количество доступных бенчмарков, производитель обычно может найти хотя бы один бенчмарк, который показывает, что его система превосходит другую систему; другие системы могут показать лучшие результаты в другом бенчмарке. Производители обычно сообщают только о тех бенчмарках (или аспектах бенчмарков), которые демонстрируют их продукты в наиболее выгодном свете. Они также известны тем, что искажают значимость бенчмарков, чтобы снова представить свои продукты в лучшем виде. Все эти практики в совокупности называются "бенчмаркетингом". В идеале бенчмарки должны заменять реальные приложения только в том случае, если приложение недоступно или слишком сложно или дорого перенести на конкретный процессор или компьютерную систему. Если производительность критична, единственным важным бенчмарком является набор приложений целевой среды.

Функциональность

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

Принципы сравнительного анализа

Существует семь важных характеристик эталонных тестов. Эти ключевые свойства:
Релевантность: эталонные тесты должны измерять действительно важные характеристики.
Репрезентативность: показатели производительности эталонных тестов должны быть широко признаны в отрасли и академических кругах.
Беспристрастность: все системы должны сравниваться справедливо.
Воспроизводимость: результаты эталонных тестов должны быть верифицируемы.
Экономическая эффективность: проведение эталонных тестов должно быть экономически целесообразным.
Масштабируемость: эталонные тесты должны работать на системах с различным объемом ресурсов – от минимального до максимального.
Прозрачность: метрики эталонных тестов должны быть понятны.