⇣ Содержание
Опрос
|
реклама
Самое интересное в новостях
Что считать за минимальный FPS? Так ли прост вопрос, как кажется?
ПредисловиеДанная статья является дальнейшим развитием идей, затронутых в статье "Методика тестирования видеокарт 2007. Использование FRAPS". Использование утилиты FRAPS в качестве инструмента тестирования и предложенная нами методика обработки результатов позволяет по-новому взглянуть на привычные, казалось бы, вещи. Более того, в ходе анализа полученных данных возникают новые вопросы. С одним из них мы и хотим вас познакомить.Предварительные замечанияКак вы все хорошо знаете, наиболее распространенным критерием производительности видеокарт является среднее значение FPS (frame per second, или кадров/с), полученное при тестировании в том или ином приложении (как правило, в 3D-играх). В синтетических 3D-приложениях могут использоваться как обычные FPS, так и свои собственные величины (например – «marks», они же «попугаи»). Сегодня мы не будем рассматривать «синтетику», а ограничимся лишь играми, поскольку производительность видеосистемы в реальной игре гораздо более важна с точки зрения комфортного времяпрепровождения, чем рекорды «в попугаях». А комфорт в различных игрушках, в свою очередь, очень сильно зависит от минимального FPS, который может обеспечить видеокарта. Впрочем, не только видеокарта, а скорее система в целом. Причины «проседания» FPS могут быть самые разные. Это и одновременное появление в сцене большого числа объектов (взрыв, осколки и т.д.), и недостаток оперативной памяти (необходимость подгрузки данных), и медленный жесткий диск (или сильно фрагментированный), да мало ли что может быть. Рассуждая таким образом, легко прийти к выводу, что минимальный FPS отнюдь не всегда определяется только мощностью видеокарты, а может зависеть от производительности других компонентов системы. В тоже время, казалось бы, зачем сыр-бор разводить? Многие игры, обладающие встроенными бенчмарками, показывают не только среднее значение FPS, но так же минимальный и максимальный FPS, полученный в ходе тестирования. Однако все не так просто. Если вы читали статью "Методика тестирования видеокарт 2007. Использование FRAPS", то могли заметить, что результаты, сообщаемые встроенным бенчмарком, могут разительно отличаться от результатов, полученных с помощью FRAPS. В тот раз речь шла о среднем FPS, но вполне разумно предположение, что могут быть значительные расхождения и для минимального FPS. К тому же, что именно считать «минимальным FPS» - сам по себе большой вопрос. Изучением этих моментов мы сегодня и займемся.Методика тестирования и обработки результатовКак уже говорилось выше, данный материал является логическим продолжением статьи "Методика тестирования видеокарт 2007. Использование FRAPS". Собственно, методы получения и обработки результатов (с помощью FRAPS) остались неизменными, поэтому здесь мы не будем подробно на них останавливаться. Но необходимо сделать одно разъяснение, касательного способа получения мгновенного значения FPS из времени рендеринга каждого кадра. В прошлый раз автор посчитал, что данный момент очевиден и не вызовет затруднений у читателей. Однако такие манипуляции с временем рендеринга кадра для некоторых читателей оказались сродни «шаманству», да и понятие «мгновенного FPS» в данном контексте также вызвало вопросы. На самом деле, все просто. Пусть у нас есть некоторая величина, предположим – скорость, размерность которой выглядит как «расстояние за единицу времени». Мы взяли в качестве примера «скорость» постольку поскольку производительность видеокарты, измеряемая в FPS, тоже, по сути, является скоростью, и обладает размерностью «количество кадров в единицу времени». Что касается средних величин скорости, тут все понятно. Берем общий путь (общее количество отрендеренных кадров) и делим на затраченное время. Получаем среднюю скорость (среднее значение FPS). C мгновенными значениями скоростей дело обстоит несколько сложнее, но тоже разобраться можно. Предположим, что мы едем на автомобиле, по городу, из точки А в точку Б. Понятно, что скорость движения не будет все время одинакова. На светофоре придется остановиться на «красный», а на проспекте можно и прибавить скорость. То есть - мгновенная скорость будет меняться. Измерять мгновенную скорость каноническим способом, с помощью рулетки и секундомера, как пройденный путь, разделенный на отрезок времени, будет довольно затруднительно. А вот одного взгляда на спидометр будет достаточно, чтобы узнать эту самую мгновенную скорость в любой момент времени. В 3D-приложениях ситуация похожа, какие-то кадры компьютер отрисовывает быстро, какие-то медленнее, а роль «спидометра» играют различные утилиты, такие как FRAPS, RivaTuner и т.д. Однако записывать мгновенные значения FPS, отображаемые утилитами в ходе тестов, довольно утомительно, не говоря уже о возможных «ошибках оператора». Поэтому мы и брали лог-файл FRAPS под названием « … frametimes.csv», в котором хранятся данные о времени рендеринга каждого кадра. Теперь поподробнее расскажем, как из времени рендеринга кадра получить мгновенное значение FPS. Допустим какой-то кадр рендерился в течение 25-ти миллисекунд. Чтобы получить значение FPS, необходимо взять обратную величину к времени рендеринга и умножить ее на 1000 (так как изначально были миллисекунды, а нам надо привести это к секундам), примерно так - «(1 кадр / 25 миллисекунд) * 1000». В итоге получим величину 40 кадров/секунду. Как видите, размерность итоговой величины совпадает с размерностью FPS и выражается в кадрах/секунду. Некоторых читателей смутил момент, что исходное время рендеринга бралось равным не одной секунде, дескать, «FPS то к секунде приводится, значит везде и надо брать отрезок времени именно такой». На самом деле разницы нет. Хоть мы возьмем один кадр длиной 25 мс, хоть 40 кадров каждый по 25 мс – мгновенная скорость будет одинакова. Если вы хотите узнать, с какой скоростью едет ваш автомобиль, не обязательно же нарезать круги в течение часа и считать число километров. Тем более что так вы получите скорее среднюю, а не мгновенную скорость. Именно поэтому мы обрабатывали значения для времени рендеринга каждого кадра и вычисляли соответствующую мгновенную производительность в FPS. Проиллюстрировать вышеизложенное можно следующим образом. Давайте построим график, по оси Х которого отложено время в миллисекундах, а «импульсы» демонстрируют отрезки времени, в течение которых отрисовывается каждый кадр. Для простоты картины возьмем интервал времени, равный одной секунде. Как видно из графика, в одну секунду отрендерилось 18 кадров, то есть значение FPS, если считать его привычным образом, как раз и равно 18 кадров/с. Но это значение не является мгновенным! Так как время рендеринга каждого кадра не одно и то же, а существенно отличается от кадра к кадру. Поэтому такое «мгновенное» значение FPS в каждую секунду времени, по сути, является усредненным. Собственно, именно такие значения мы и видим в файле в лог-файле FRAPS с именем «… fps.csv». Период усреднения уменьшился до одной секунды, но суть осталась прежней – это средние значения FPS в каждую секунду времени. Если же мы пересчитаем время рендеринга каждого кадра по нашей методике, то получим следующую диаграмму FPS. На этой диаграмме мы вместо «импульсов» отобразили мгновенные значения FPS для каждого кадра и поместили их в середину каждого «импульса». Для наглядности, ось Х осталось прежней, с отметками времени в миллисекундах, а по оси Y отложены значения FPS. Если мы теперь подсчитаем среднее значение FPS из вычисленных мгновенных значений для каждого кадра, то получим значение 25,7 FPS. Как видите, разница по сравнению с прежними 18 FPS – огромная! Не говоря уже о взлетах и провалах величины FPS, которые скрадываются даже таким маленьким интервалом времени, как одна секунда. Собственно, тема минимальных FPS и есть то, ради чего затевалась данная статья. Теперь, после несколько затянувшегося вступления, мы спокойно можем заняться этим вопросом.Тестирование в F.E.A.R.Тестовый стенд, который мы использовали при подготовке данного материала выглядит следующим образом
Тестирование в NFS Most Wanted и CarbonТестовый стенд остался без изменений. Поэтому сразу приступим к ознакомлению с результатами. В качестве демо-сцены использовалась кольцевая трасса, по которой проезжалось два круга, чтобы включить все возможные особенности – смену дня-ночи, дождь, различное положение соперников и «ботов» на трассе. Число соперников и уровень трафика выбралось максимальным. Встроенного в игру теста нет, поэтому в нашем распоряжении только результаты, полученные с помощью FRAPS.
ВыводыМы выяснили, что значение «минимального FPS» сильно зависит от способа его вычисления. Рассмотренные в статье игры были выбраны произвольно, а не из-за своей исключительности. Очевидно, что рассмотренный метод вычисления «минимального FPS» можно легко применить и к любым другим 3D-играм. Но главное не это. Во-первых, сама величина «минимального FPS» зависит от способа ее измерения, или средств, для этого использованных. Это уже вносит неоднозначность. Во-вторых, абсолютный минимум FPS, который мы получили после обработки файла статистики «FRAPS frametimes», как оказалось, практически не зависит от собственно видеосистемы и графического режима, а скорее характеризует «движок» игры или другие компоненты системы. Поэтому говорить о зависимости «минимального FPS» от производительности видеосистемы не приходится. В третьих, выбор любого другого «минимального FPS» кроме абсолютного, будь то значение, сообщаемое встроенным бенчмарком, утилитой FRAPS или «срезом левой части главного колокола распределения по уровню 10% от максимума» - является чистой воды произволом. Что касается мнения автора, то считать минимальный FPS по «срезу…» является более правильным и информативным, с точки зрения тестирования видеосистемы. Но и здесь возникает вопрос, например – почему именно 10% от максимума, а не 5% или 15%? И это не считая множества других возможных возражений. Поэтому… Вопрос о том, что же считать «минимальным FPS», остается открытым. Обсудить тему на форуме. P.S. Именно поэтому в наших тестах видеокарт мы не спешим приводить значение минимального FPS
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
|