FrameTimeHandler

1. Описание и загрузка

FrameTimeHandler — это программа для обработки файлов логов от программ Fraps и Nvidia FRAMEVIEW, логированию результатов игровых тестов и подготовке данных для построения графиков.

FrameTimeHandler на GitHub (MIT License)

Пустые шаблоны графиков

Для более подробного ознакомления с работой утилит Fraps и Nvidia FRAMEVIEW изучите документацию на утилиты на сайтах Fraps.com и странице FRAMEVIEW на сайте nvidia.com.

2. Сохранение логов игровых приложений

2.1 Fraps

2.1.1 Установите и запустите программу Fraps на компьютере на котором планируется проведение игровых тестов (тестов в полноэкранных или оконных приложениях использующих API DirectX 11 или более старые).

2.1.2 Произведите настройку программы Fraps.

Интерфейс программы Fraps
  1. Перейдите во вкладку «FPS»
  2. Смените путь для сохранения логов игры используя кнопку «Change». Убедитесь, что вы выбрали удобную для вас и доступную для записи директорию на компьютере. Для записи в некоторые директории необходимы права администратора для процесса Fraps.exe.
  3. Установите необходимую клавишу (комбинацию клавиш) для запуска и остановки бэнчмарка в окне «Benchmarking Hotkey». Для этого поставьте курсор в белое окно и введите на клавиатуре требуемую клавишу. Выбранная клавиша не должна использоваться игрой в которой будет проводится тесты. В случае затруднений изменения клавиши — очистите белое поле клавишей «Disable» и повторите попытку установки клавиши.
  4. Убедитесь, что в чекбоксе с надписью «Frametimes» установлена галочка. Остальные галочки могут быть сняты или установлены по необходимости, на работу с приложением FrameTimeHandler их выбор не влияет.
  5. В случае если вы хотите самостоятельно выбирать момент завершения сбора данных программой Fraps (подходит для большинства игр) — убедитесь, что в чекбоксе «Stop bench…» не установлена галочка. В случае если вы хотите задать таймер на автоматическое отключение сбора данных — установите галочку в чекбоксе и установите требуемое время до завершения сбора данных (устанавливается в секундах).
  6. При отладке работы Fraps с конкретной игрой рекомендуется выводить оверлей (цифры со значением FPS поверх игры) в один из углов экрана. Для этого выберите точкой один из углов чёрного прямоугольника. Чёрный прямоугольник — условное изображение монитора, углы на нём соответствуют положению оверлея на мониторе. При записи данных игры рекомендуется устанавливать точку на позицию «Hide overlay» которая скрывает оверлей. Отображение оверлея может вызывать задержки выводов кадров и вносить искажение в результаты тестирования.

2.1.3 Запись логов.

  1. Запустить Fraps настроенный согласно п.2.1.2.
  2. Запустите игру в которой необходимо произвести замер производительности.
  3. Убедитесь в работоспособности Fraps в игре. Оверлей с показаниями FPS, если не выбран пункт «Hide overlay» в п.2.1.2, должен выводится поверх игры. Если этого не происходит перезапустите игру. Убедитесь, что игра использует DX 11 или более старые. В случае несовместимости с игрой используйте программу Nvidia FRAMEVIEW.
  4. Произведите начало записи логов времени кадра путём однократного нажатия на клавишу клавиатуры (комбинацию клавиш) выбранную в поле «Benchmarking Hotkey» в п.2.1.2.
  5. Произведите окончание записи логов времени кадра путём повторного однократного нажатия на клавишу клавиатуры (комбинацию клавиш) выбранную в поле «Benchmarking Hotkey» в п.2.1.2.
  6. Запись логов производится по завершению окончания записи логов в папку выбранную в пути для сохранения логов файлов в п.2.1.2.
  7. Для работы с FrameTimeHandler необходимо использовать файлы вида: «%Game_name% % date%frametimes.csv».
Обведены красной рамкой файлы с логами времени кадров программы Fraps

2.2 Nvidia FRAMEVIEW

2.2.1 Установите и запустите Nvidia FRAMEVIEW на компьютере на котором планируется проведение игровых тестов (тестов в полноэкранных или оконных приложениях).

2.2.2 Произведите настройку программы Nvidia FRAMEVIEW.

Интерфейс Nvidia FrameView
  1. Смените путь для сохранения логов игры используя кнопку «Browse». Убедитесь, что вы выбрали удобную для вас и доступную для записи директорию на компьютере. Для записи в некоторые директории необходимы права администратора для программы Nvidia FRAMEVIEW (установленный путь при первом включении, если не изменить директорию вручную, может быть несуществующем для вашего компьютера, логи сохранены не будут).
  2. Выберите удобную и незадействованную в игре клавишу для начала и окончания записи логов в выпадающем меню «Benchmark hotkey:» программы.
  3. Установите необходимые для вывода в оверлей данные. При начале записи логов — оверлей автоматически скроется для снижение влияния на производительности в игре. После завершения записи логов — оверлей автоматически отобразится поверх игры. Выбор данных и отображение их на экране на работу с логами программы FrameTimeHandler не влияет.

2.2.3 Запись логов.

  1. Запустите Nvidia FRAMEVIEW настроенный согласно п.2.2.2.
  2. Запустите игру в которой необходимо произвести замер производительности.
  3. Убедитесь в работоспособности Nvidia FRAMEVIEW в игре. Достаточным условием работоспособности является показ оверлея в игре. В случае отсутствия отображения оверлея — Nvidia FRAMEVIEW может производить запись логов времени кадра без показа оверлея. Для контроля работоспособности, в случае отсутствия отображения оверлея, проведите тестовый запуск логирования времени кадров путём нажатия на заданную в п.2.2.2 клавишу «Benchmark hotkey: » для запуска логирования с повторным нажатием этой клавиши через произвольный временной промежуток. Критерием работы программы Nvidia FRAMEVIEW является создание файлов логов в выбранной в п.2.2.2 директории для записи логов.
  4. Произведите начало записи логов времени кадра путём однократного нажатия на клавишу клавиатуры выбранную в выпадающем меню «Benchmark hotkey:» в п.2.2.2.
  5. Произведите окончание записи логов времени кадра путём повторного однократного нажатия на клавишу клавиатуры выбранную в выпадающем меню «Benchmark hotkey:» в п.2.2.2 .
  6. Запись логов производится по завершению окончания записи логов в папку выбранную в пути для сохранения логов файлов в п.2.2.2.
  7. Для работы с FrameTimeHandler необходимо использовать файлы вида: «FrameView-%Game_name%-%date%_Scan_Report.csv».
Обведены красной рамкой файлы с логами времени кадров программы Nvidia FrameView

3. Импорт логов времени кадра в FrameTimeHandler

3.1 Перед имортированием логов в программу FrameTimeHandler проведите запись логов согласно разделу 2 настоящей инструкции, используя программы Fraps или Nvidia FRAMEVIEW.

Для Fraps (если не были переименованы файлы логов) необходимы файлы вида: «%Game_name% % date%frametimes.csv». Для Nvidia FRAMEVIEW (если не были переименованы файлы логов) необходимы файлы вида: » FrameView-%Game_name%-%date%_Scan_Report.csv «.

3.2 Запустите FrameTimeHandler (приложение не требует установки, в случае использования в директории в которой запись файлов требует прав администратора запускать приложение необходимо с правами администратора).

Интерфейс FrameTimeHandler

3.3 В белом поле программы «Название теста:» введите короткое название характеризующее проведённый тест, логи которого вы хотите импортировать в произвольном виде (рекомендуется указывать видеокарту/процессор/настройки графики/название игры или любые иные параметры важные для тестирования).

Пример названия теста

3.4 Нажмите на кнопку «Обзор» в верхней области программы. В открывшимся окне выберите необходимый для импортирования в FrameTimeHandler файл логов сохранённых согласно разделу 2 настоящего руководства. После выбора файла логов в окне выбора файла нажмите «открыть», окно закроется автоматически.

Окно выбора файлов логов времени кадра

После закрытия окна для открытия файла происходит автоматическая обработка файлов логов с автоматической селекцией типа файла (вручную выбирать какой именно файл был импортирован: из Fraps или Nvidia FRAMEVIEW не надо).

Рядом с окном «Название теста:» отобразятся краткие сведения открытого файла логов. Выводятся меньшие 0,1 % FPS, меньшие 1% FPS, среднее значение FPS (AVG FPS). Методика расчётов приведена в разделе _ настоящего руководства.

В верхней части интерфейса отображаются данные о текущем открытом тесте

В директории размещения утилиты FrameTimeHandler создаётся файл data.txt в который вносятся данные о производительности импортированного в FrameTimeHandler файла логов (в случае наличия файла data.txt производится добавление новой записи в существующий файл data.txt).

4. Логирование результатов тестов в файл Data.txt

При импортировании логов времени кадра, согласно разделу 3 настоящего руководства, в директории программы FrameTimeHandler создаётся автоматически заполняемый файл для хранения результатов импортированных тестов: Data.txt

4.1 Содержание файла «Data.txt»

Файл Data.txt с записью одного результата

Файл содержит следующие сведения записанные в текстовом виде:

  1. Заголовок содержащий сведения о версии приложения
  2. Строка с наименованием результатов
  3. Результаты тестирования, где каждый новый результат записывается новой строкой
Файл Data.txt с записью нескольких результатов

4.2 Результаты тестирования содержат сведения:

  1. «Frams» — Количество кадров в тесте
  2. «Time test» — Общая длительность теста выраженная в секундах
  3. «AVG_FPS» — Значение среднего количества кадров в секунду (AVG FPS) выраженного в числе кадров в секунду
  4. «Low 0.1% mFPS» — Значение меньших 0,1% кадров в секунду (0,1 процентиль) выраженная в единицах кадров в секунду (FPS)
  5. «Low 1% mFPS» — Значения меньших 1% кадров в секунду (1 процентиль) выраженная в единицах кадров в секунду (FPS) (некоторые ресурсы указывают это значение как 99% или 99)
  6. «Low 5% mFPS» — Значение меньших 5% кадров в секунду (5 процентиль) выраженная в единицах кадров в секунду (FPS) (некоторые ресурсы указывают это значение как 95% или 95)
  7. «Low 50% mFPS» — Значение 50% (0,5 квантиль) кадров в секунду выраженные в единицах кадров в секунду (FPS) (медианное значение FPS)
  8. «test name» — Название теста введённое в окне «название теста» (см. п.3.3 настоящего руководства).

Примечание. Термины и определения, критерии оценки производительности и методика расчётов приведены в разделе 7 настоящего руководства.

5. Импорт данных для построения графиков по точкам.

5.1 Общие сведения.

Программа FrameTimeHandler подготавливает данные для импорта в программы для построения графиков.

Реализован вывод 3-х видов графиков:

  • График времени кадров;
  • График плотности вероятности;
  • График распределения плотности вероятности (в программе сокращено до названия «распределение вероятности»)

Графики необходимы для анализа результатов и сравнения характеристик и отличий показателей. Базовые методики оценки результатов приведены в разделе _ настоящего руководства.

Программа позволяет производить вывод данных для построения графиков двумя способами:

  • Файл формата *.txt с набором координат точек. В каждой строке записано две координаты одной точки, разделитель «, «. Десятичный разделитель «.» переход между точками — переход строки. Данный формат файла поддерживается большинством приложений для построения графиков по точкам. Вывод файла этим методом описан в п.5.2 настоящего руководства.
  • Импорт графиков в готовое сохранение программы graph. Вывод графиков в сохранение программы graph описан в п.5.3 настоящего руководства. Руководство по использованию программы grapf представлено на официальном сайте (eng). Минимальный объём необходимых навыков для работы с данными из FrameTimeHandler в программе gfaph приведён в разделе 6 настоящего руководства.

Методика вывода графиков в программе FrameTimeHandler от типа графика не зависит. Описание назначений графиков и оценки результатов приведены в разделе 7 настоящего руководства.

5.2 Экспорт данных для графиков в текстовый .txt файл

Для вывода координат точек для графиков в txt файл с разметкой оптимизированной для экспорта в популярные приложения построения графиков по точкам необходимо импортировать логи файлов бэнчмарков в программу FrameTimeHandler см. разделы 2,3 настоящего руководства.

По завершению импорта логов времени кадра в интерфейсе программы FrameTimeHandler вы должны видеть правее окна «Название теста:» информацию о текущем загруженном логе времени кадров (отображаются значения Low 0.1%, Low 1%, AVG FPS), а так же в окне «Путь файла логов:» должен содержаться путь и название открытого файла логов.

Интерфейс программы в состоянии готовности вывода данных для построения графиков в формате .txt

Для вывода файлов с координатами точек для построения графиков необходимо для выбранного типа графика нажать на кнопку «сохранить» рядом с надписью «Сохранить как TXT:»

Выделены красным прямоугольником кнопки позволяющие сохранять графики (сверху вниз) времени кадров, плотности вероятности, распределения вероятности.

При нажатии на кнопку «сохранить» в директории программы FrameTimeHandler создаётся новый файл оптимизированный для импорта в популярные программы для построения графиков по точкам.

Примечание! Не вносите изменения в файлы созданные FrameTimeHandler. При экспорте графиков времени кадра от длительных тестов не рекомендуется открывать файл координат точек графика текстовым редактором, это может привести к временным потерям производительности компьютера, зависанию компьютера.

Сохранения координат точек графиков времени кадра имеют вид: «FrameTimeReport_%Название теста:%.txt»

Сохранения координат точек графиков плотности вероятности имеют вид: «ProbabilityDensityReport_ %Название теста:% .txt»

Сохранения координат точек распределения вероятности имеют вид: «ProbabilityDistributionReport_ %Название теста:% .txt»

5.3 Экспорт графиков в файл сохранений программы graph

5.3.1 Общие сведения

Описания работы с программой graph приведены в разделе 6 настоящего руководства.

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

Скачать программу можно на официальном сайте — https://www.padowan.dk/

Интерфейс программы Graph с сохраненными результатами для нескольких процессоров в бенчмарке GTA5 (кликните на изображение чтобы открыть оригинал)

Для создания базы данных с сохранениями графиков рекомендуется создать шаблон для каждой из используемой в тесте игры

4 файла для сохранений графиков времени кадров для 4-х разных игр

Шаблоны пустых сохранений с настроенными подписями осей графиков можно скачать тут.

Пустой шаблон для графиков времени кадра, в архиве по ссылке выше — 3 шаблона. Для каждого вида графика
Содержимое архива с шаблонами

Перед началом импорта данных в сохранения программы graph рекомендуется раскопировать пустые шаблоны по количеству игр в тестах и переименовать их в такие названия при которых вы сможете понять сохранение какой игры вы будите выбирать через интерфейс программы FrameTimeHandler, например: «GTA V Время кадра Процессоры.grf», «WD2 Время кадра Процессоры.grf», «GTA V вероятность процессоры.grf» и т.д.

5.3.2 Процесс экспорта данных в сохранения программы graph

Для вывода графиков бэнчмарков в сохранение программы graph необходимо предварительно импортировать логи файлов бэнчмарков в программу FrameTimeHandler см. разделы 2,3 настоящего руководства.

По завершению импорта логов времени кадра в интерфейсе программы FrameTimeHandler вы должны видеть правее окна «Название теста:» информацию о текущем загруженном логе времени кадров (отображаются значения Low 0.1%, Low 1%, AVG FPS), а так же в окне «Путь файла логов:» должен содержаться путь и название открытого файла логов.

Интерфейс программы в состоянии готовности вывода данных для построения графиков в формате .txt

Убедившись, что загружен необходимый вам лог файлов в программу FrameTimeHandler необходимо выбрать (исходя из потребностей) вид графика который вы хотите вывести в программу graph (график времени кадров, график плотности вероятности или график распределения вероятности).

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

Соответствие кнопок «обзор» с типом графика

После нажатия на требуемую кнопку «обзор» открывается окно выбора файла сохранения программы graph в который будет экспортирован график (подробнее см. п.5.3.1).

Выбор сохранения

После выбора файла для экспорта графика нажмите кнопку «Открыть». Окно выбора закроется.

В основном интерфейсе программы FrameTameHandler в белом поле под выбранным графиком появится путь к выбранному сохранению программы graph.

Появился путь для сохранения

Одновременно с этим активным станет кнопка «Записать» рядом с кнопкой «обзор» для выбранного типа графика.

При нажатии на кнопку «Записать» произойдёт автоматическое добавление выбранного типа графика от открытого в FrameTimeHandler бэнчмарка в выбранный файл сохранения программы graph.

График появился в сохранении программы graph

В одно сохранение программы graph можно добавлять любое количество графиков.

На изображении выше видно, что в сохранении необходимо произвести настройку отображения графика (он занимает малую часть экрана). Базовые навыки по работе в graph приведены в разделе 6 настоящего руководства.

Вывод графиков остальных типов производится аналогично используя соответствующие им кнопки «обзор».

Выбраны сохранения для всех типов графиков

Примечание. Как правило тестирование проводится с несколькими конфигурациями систем в ограниченном количестве игр, а так же для контроля точности тестирования производятся повторные и третичные тесты одних и тех же конфигураций в одних и тех же играх. Логика выбора последовательности действий в программе FrameTimeHandler выбрана так чтобы минимизировать количество кликов и требуемых действий для импорта всех результатов. Рекомендуемая последовательность действий для экспорта множества графиков:

  1. Проведение всего комплекса тестов со всеми конфигурациями требуемое количество раз с получением всех логов времени кадра. Предположим производилось сравнение двух процессоров: процессор «I» и процессор «II» в 4-х играх: «A», «B», «C», «D». Для каждого процессора для каждой игры проведено по три теста. Получается 24 теста: «IA1», «IA2», «IA3», «IIA1», «IIA2», «IIA3», «IB1″…. «IID3»
  2. Запуск FrameTimeHandler
  3. Ввод в поле «Название теста:» название теста, например: «IA1»
  4. Выбор файла лога соответствующего тесту «IA1»
  5. Выбор файлов графиков программы graph: «А Время кадра», «А Плотность вероятность», «А Распределение вероятности»
  6. Запись всех типов графиков в сохранения Graph
  7. Переименование «название теста:» в «IA2»
  8. Выбор файла лога соответствующего тесту «IA2».
  9. Файлы графиков программы graph: «А Время кадра», «А Плотность вероятность», «А Распределение вероятности» уже выбраны, достаточно нажать на кнопки «записать»
  10. Переименование «название теста:» в «IA3»
  11. Выбор файла лога соответствующего тесту «IA3».
  12. Файлы графиков программы graph: «А Время кадра», «А Плотность вероятность», «А Распределение вероятности» уже выбраны, достаточно нажать на кнопки «записать»
  13. Переименование «название теста:» в «IIA1»
  14. Выбор файла лога соответствующего тесту «IIA1».
  15. Файлы графиков программы graph: «А Время кадра», «А Плотность вероятность», «А Распределение вероятности» уже выбраны, достаточно нажать на кнопки «записать»
  16. Переименование «название теста:» в «IIA2»
  17. Выбор файла лога соответствующего тесту «IIA2».
  18. Файлы графиков программы graph: «А Время кадра», «А Плотность вероятность», «А Распределение вероятности» уже выбраны, достаточно нажать на кнопки «записать»
  19. Переименование «название теста:» в «IIA3»
  20. Выбор файла лога соответствующего тесту «IIA3».
  21. Файлы графиков программы graph: «А Время кадра», «А Плотность вероятность», «А Распределение вероятности» уже выбраны, достаточно нажать на кнопки «записать»
  22. ****Промежуточный результат: экспортированы все графики для игры А
  23. Переименование «название теста:» в «IB1»
  24. Выбор файла лога соответствующего тесту » IB1″
  25. Выбор файлов графиков программы graph: «B Время кадра», «B Плотность вероятность», «B Распределение вероятности»
  26. ……… Повторить п.6-21 для игры «B»
  27. ……… Повторить п. 23-26 для игр «C» и «D»

6. Работа с программой graph

После экспорта графиков в программу graph может потребоваться произвести настройку отображения графиков

График занимает малую область экрана

6.1 Настройка интерфейса

Изменение языка на русский производится в выпадающем меню «edit» в разделе «Options…»

Изменение языка

6.2 Редактирование масштаба по осям и редактирование основной надписи

Настройка масштаба осей, ноля координат, подписей графиков, шрифтов, сетки, цветов фона, осевых линий и т.п. производится в меню вызываемом двойным нажатием ЛКМ на «Оси…» в левом верхнем углу рабочей области программы.

«Оси…» подчёркнуто красным

Настройки разделены на 4 группы:

Редактирование осей
  • Ось X
  • Ось Y
  • Параметры
  • Шрифт и цвет

Во вкладках «Ось X», «Ось Y» Доступна установка минимального и максимального отображаемого на экране значения, ввод обозначения названия оси, смещение ноля, настройка сетки, перевод в логарифмическую шкалу, настойки отображения значений на засечках у оси.

Вкладка «параметры»

Во вкладке параметры доступно изменение основной надписи и редактирование шрифта основной надписи, настройки расположения подписи и параметров отображения осей

Вкладка «Шрифт и цвет»

Во вкладке «шрифт и цвет» доступно изменения цвета основных элементов и фона поля графика, изменение размера и типа шрифта основных элементов.

Тот же график, что и ранее после настройки

6.3 Редактирование внешнего вида графиков

Графики экспортируются из FrameTimeHandler красного цвета показанные непрерывной линией без дополнительного отображения точек. Как правило графиков несколько и для них необходимо задать особенности отображения (разные цвета, прерывистые линии, точки разной формы).

Для настройки графиков необходимо в левой колонке выбрать требуемый для изменения график и вызвать его параметры двойным нажатием ЛКМ.

График подчёркнут
Настройки графика

В левой половине доступен редактор координат точек (внесение изменений может вызвать введение читающих графики людей в заблуждение, не изменяйте параметры экспортированные из FrameTimeHandler).

В правой половине доступна установка типа координат (используйте прямоугольные)

Маркер (обозначение каждой точки утолщением). Для маркера доступен выбор формы маркера, его размер и цвет.

Линия. Выбор типа линии (прерывистая, точками, точка тире и т.д.), цвет линии, толщина, интерполяция (для большого числа графиков для ускорения работы рекомендуется выбирать «Линейная»).

Надписи. Позволяет на графике рядом с каждой точкой выводить координаты (вывод происходит при значении размера маркера 1 и более).

В нижней правой части окна настроек расположен образец изменяющийся в реальном времени при изменении параметров отображения графика.

6.4 Вывод графиков в PNG в высоком разрешении

Вывод в качестве изображения

Выберите меню: «Файл/Сохранить как изображение…»

Окно сохранения изображения

В нижней части окна выберите «Настройки…»

Парамеры

В открывшемся окне выберите требуемое разрешение для изображения. Данная настройка сохраняется и повторно производить её не надо.

Сохранение доступно в нескольких форматах изображений и графиков. Для публикации в интернете наиболее удобен формат PNG.

7. Анализ результатов

7.1 Термины и определения

Время кадра — промежуток времени между двумя соседними равными событиями в процессе отрисовки кадра (например: между двумя началами отрисовки кадра, между двумя заверениями отрисовки кадра, между началом выводов на монитор двух кадров). Различное ПО использует различные отсчётные события для измерения времени кадра, что приводит к различиям по измеряемым величинам. Например Fraps использует в качестве события отсчёта — первое обращение в API на отрисовку нового кадра. Nvidia FRAMEVIEW производит расчёт времени кадра от двух различных событий, выводя два параметра времени кадра. Первое событие — аналогично Fraps — первое обращение в API для нового кадра. Второе событие — начало вывода кадра на экран. Программа FrameTimeHandler использует время кадра полученное в FrameView от замеров между началами вывода соседних кадров на экран (в документации nvidia — «MsUntilDisplayed»). Единицы измерения — с (часто выражают в долях секунд, обычно в мс).

Экранное время кадра — частный случай времени кадра, полученного как промежуток времени между началами вывода на экран двух соседних кадров. Единицы измерения — с (часто выражают в долях секунд, обычно в мс).

Пары длинный/короткий кадр — один из видов инструментальных погрешностей программ мониторинга времени кадра связанный на несовпадении времени фактического начала отрисовки кадра с моментов первого обращения к API для отрисовки нового кадра. Данная погрешность имеется в измерениях времени кадра полученных как промежуток времени между первыми обращениями к API двух соседних кадров. Данная проблема возникает из-за отсутствия синхронизации между этапом подготовки кадра процессором и отрисовкой кадра, а так же из-за наличия очередей на отрисовку кадров (наличие заранее подготовленных кадров). Данные особенности построения кадров направлены на сглаживание вывода кадров которое могло быть нарушено из-за различных по времени этапов подготовки кадров процессором. Данная погрешность вносит критически высокие искажения в параметры меньшие 0,1% FPS, меньшие 1% FPS, значительные искажения в параметр меньшие 5% FPS. Не вносит искажений в значение среднего FPS. Использование экранного времени кадра исключает влияние на результаты вызванное парами длинный/короткий кадр. Рекомендуется использовать для записи логов времени кадра программу nvidia FrameView.

FPS (Frame per second) (количество кадров в секунду) — величина равная количеству полностью выведенных кадров за 1 секунду. В текущий момент под FPS понимается более широкое понятие. FPS иногда выводится как дробная величина, учитывая фрагменты кадров находящихся на момент отчёта в состоянии отрисовки. Часто в качестве FPS указывается значения мгновенных FPS. Единицы измерения FPS — шт./с.

Мгновенный FPS (mFPS). Под мгновенным FPS в настоящее время понимается две величины:

  1. Количество кадров выведенных за отчётный промежуток времени умноженный на обратную величину отношения отчётного промежутка времени к 1 секунде. Например если за 0,5 секунды выведено 20 кадров, то мгновенный FPS считается как: 20/(0,5)= 40. Единицы измерения мгновенного FPS — шт./с.
  2. Величина обратно пропорциональная времени кадру текущего кадра. Для данной величины справедливо различие между разными интерпретациями времени кадра. В FrameTimeHandler под mFPS понимается величина обратно пропорциональная времени кадра. Единицы измерения мгновенного FPS — шт./с.

Low 0.1% FPS. Величина выраженная в значениях mFPS описывающая промежуток времени занятый наиболее длинными кадрами до достижения величины от общего времени (общей выборки) в 0,1%, Численное значение равно оконечному значению mFPS обратного от времени кадра (включая его) при достижении выборки в 0,1% времени от общего времени выборки.

Low 1% FPS. Величина выраженная в значениях mFPS описывающая промежуток времени занятый наиболее длинными кадрами до достижения величины от общего времени (общей выборки) в 1%, Численное значение равно оконечному значению mFPS обратного от времени кадра (включая его) при достижении выборки в 1% времени от общего времени выборки.

Low 5% FPS (иногда указывается как 95%, иногда указывается как 0,95). Величина выраженная в значениях mFPS описывающая промежуток времени занятый наиболее длинными кадрами до достижения величины от общего времени (общей выборки) в 5%, Численное значение равно оконечному значению mFPS обратного от времени кадра (включая его) при достижении выборки в 5% времени от общего времени выборки.

Медианное значение FPS (50% FPS). Величина выраженная в значениях mFPS описывающая промежуток времени занятый наиболее длинными (или короткими) кадрами до достижения величины от общего времени выборки в 50% , численно значение равно оконечному значению mFPS обратного от времени кадра (включая его) при достижении выборки в 50% времени от общего времени выборки. Величина характеризует такое значение времени кадра, которое разделяет выборку на две равные части по времени, то есть 50% времени — кадры в тесте были короче, указанного в качестве медианного, 50% времени — кадры в тесте были длиннее, указанного в качестве медианного. Не путать со средним FPS и модальным FPS.

Модальное значение FPS (типичное значение FPS). Величина выраженная в значениях mFPS показывающая наиболее типичное значение mFPS в тесте. Не пусть со средним FPS и медианным FPS.

Средний FPS (AVG FPS). Величина численно равная общему количеству кадров, делённому на количество секунд в тесте. Не путать с модальным значением FPS (типичным FPS).

График времени кадра — линия, описывающая изменение параметра времени кадра во времени.

График плотности вероятности времени кадра — линия описывающая величину вероятности встречаемости кадров определённой длинны в общей выборке данных.

График распределения вероятности времени кадра — линия описывающая проращение вероятности встречаемости кадров определённой длины в общей выборке данных (является интегралом от графика плотности вероятности по mFPS).

7.2 Анализ данных в data.txt

Импорт данных в файл data.txt и содержание файла data.txt описано в разделе 4 настоящего руководства.

Данные в файле data.txt следуют использовать в двух случаях:

  1. Контроль качества тестов;
  2. Первичный анализ результатов.

7.2.1 Контроль качества тестов по данным файла data.txt.

Параметры позволяющие оценить достоверность результатов — это время тестирования аналогичных участков тестовой сцены. При ручной активации записи логов времени кадра с ручной остановкой записи — разность длительностей тестов не должна превышать 1 секунды. В случае систематического превышения этой разницы — измените методику тестирования для обеспечения равных интервалов и улучшения повторяемости тестов.

Файл Data.txt с записью нескольких результатов

7.2.2 Первичный анализ результатов по данным файла data.txt.

Параметры оценки производительности можно разделить на два типа:

  1. Общая производительность в игре;
  2. Стабильность работы игры.

К параметрам оценивающим общую производительность относятся: средний FPS (AVG FPS), медианный FPS (Low 50% mFPS).

В случае наличия большого числа долгих кадров — рекомендуется использовать в качестве оценки общей производительности — медианный FPS как значение более точно отражающее производительность.

В п.___ приведены методы определения модального значений FPS определяемого по графикам. Значение модального FPS эквивалентно значению «типичного FPS», или «Самого частого FPS».

Для рассмотрения различий среднего, медианного и модального FPS рассмотрим пример этих значений для данных росстата о заработной плате в РФ на апрель 2019 года.

Приведённые ниже данные и диаграммы обработаны пользователем: «REBURG» на «Яндекс.Дзен» в статье «Почему россияне перестали верить в среднюю заработную плату».

Распределение численности работников по размерам заработной платы

Согласно данным об официальной заработной платы — средняя заработная плата по России среди работающего населения составляет 47,7 тысяч рублей.

Это значение получено путём вычисления значения совокупного размера заработной платы всех работающих граждан делённое на количество работающих граждан.

Данное значение вычисляется аналогично среднему FPS.

При переводе данных из указанных росстатом групп в равные интервалы зарплат и переводе значений из численности человек в процентные доли диаграмма распределения приобретает вид:

Распределение численности работников на диаграмме с равным шагом размера заработной платы

На диаграмме выше отмечено синим пунктиром расчётное значение медианного значения заработной платы. Медианное значение — это такое значение которое разделяет распределение на две части так, что совокупная доля событий (в данном случае человек) до медианного значения равно совокупной доли событий (людей) после медианного значения. То есть по данным росстата в РФ на апрель 2019 года 50% работающих людей получают заработную плату в размере менее 34335 рублей и 50% работающих людей получают заработную плату в размере более 34335 рублей.

Медианное значение смещается от среднего значения в случае наличия «перевеса» в распределении в сторону этого «перевеса». В случае с FPS при наличии большого числа долгих кадров — значение медианного FPS снижается относительно значений среднего FPS.

Также на диаграмме выше, красной пунктирной линией указывается модальное значение заработной платы. Модальное значение обозначает величину с наибольшей вероятностью встречаемости в выборке (наиболее типичное значение, наиболее ожидаемое значение).

Согласно данным росстата наибольшее число работающих граждан РФ получают заработную плату в размере 23510 рублей.

Получение модального значения FPS по графикам рассмотрено в п.7.3.2 настоящего руководства.

К параметрам оценивающим стабильность игры относятся параметры Low 0.1% FPS, Low1% FPS, Low 5% FPS.

Данные параметры по своей значимости схожи с параметрами -3σ и -2σ применимые к нормальному распределению случайной величины.

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

Для нормального распределения -3σ отсекает события общей вероятности ~0,13%, -2σ отсекает события общей вероятности ~2,14%.

Значения меньших 0,1; 1 и 5% FPS характеризуют стабильность только при сравнении со средним, медианным или модальным значением FPS.

Например существует два теста для которых верны результаты измерений:

  1. Тест 1: Low 0.1% FPS = 50, медианное значение FPS = 100
  2. Тест 2: Low 0.1% FPS = 40, медианное значение FPS = 50

Для сравнения общей производительности следует применять значением медианного FPS. Исходя из полученных данных — общая производительность системы в тесте 1 выше, чем общая производительность в тесте 2.

Для сравнения стабильности и равномерности выводимых кадров следует анализировать разницу между значениями Low 0.1% и медианным значением FPS. Для теста 1 — разница составляет 100 — 50 = 50 FPS. Для теста 2 разница составляет 50 — 40 = 10 FPS. Чем меньше разница — тем выше стабильность и равномерность выводимых данных. То есть система в тесте 2 характеризуется большей стабильностью и равномерностью выводимых кадров.

Значения меньших 0,1; 1 и 5% FPS без оценки их величин относительно среднего, медианного или модального значения FPS не несут сами по себе смысловой нагрузки!

7.3 Анализ данных по графикам

7.3.1 График времени кадров

График времени кадра (нажмите для увеличения)

График времени кадра показывает изменение величины времени кадра во времени. На графике отмечается время каждого кадра.

Общая производительность оценивается по средней, субъективно оценочной величине времени кадра. Произвести определение параметров производительность выраженное цифровыми величинами по графикам времени кадра — нельзя.

Оценка стабильность производительности производится по выбивающимся из средних значений отдельным кадрам. Произвести определение параметров стабильности выраженное цифровыми значениями по графикам времени кадра — нельзя.

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

Бирюзовый тест показывает лучшую производительность, чем красный

7.3.2 График распределение плотности вероятности (график плотности вероятности)

график плотности вероятности

График плотности вероятности показывает зависимость доли времени показываемых кадров от общего времени теста по значениям mFPS.

То есть высота графика над горизонтальной осью показывает кадров какой длительности было больше в тесте (учитывая не количество кадров, а длительность показа кадров).

Наиболее часто встречаемые кадры являются величиной называемой в статистике модой.

Распределения времени кадра не являются нормальными распределениями, поэтому величина модального значения не ровна величине медианного значения и величине среднего значения FPS. Названия «модальное значение» и «типичное значение» можно считать тождественными и использовать как синонимы.

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

Значение мод

Моды (наивысшие точки графиков) обозначены на графиках выше оранжевым и ярко зелёным цветом. Распределения имеют по два модальных значений. Для тёмно синего графика модальные значения 95 и 135 FPS, для красного графика модальные значения 118 и 154 FPS. Модальные значения FPS наиболее достоверно передают характеристики типичных значений производительности и их можно использовать для сравнения для аналогичных сцен при тестированиях. Однако важно понимать, что в случае значительных отличий производительности — характер распределений может значительно меняться, и в этом случае модальные значения являются менее предпочтительными, чем медианные значения. Сравниваемые распределения должны иметь схожие эволюции (быть похожими внешне друг на друга). В случае значительных отличий тестируемых конфигураций, рекомендуется использовать значения медианных FPS.

Определение стабильности значений FPS производятся по анализу роста распределения в области низких FPS.

Области низких FPS на распределении

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

Произвести определение параметров стабильности выраженное цифровыми значениями по графикам плотности вероятности — нельзя.

7.3.3 График распределения вероятности

Сравнение двух графиков

График распределения вероятности является интегралом графика плотности вероятности, рассмотренного в п.7.3.2 настоящего руководства.

График показывает приращение вероятности встречаемости кадров по величине мгновенного FPS.

Общая производительность тестов оценивается по смещениям графиков влево/вправо относительно друг друга. В примере выше — красный график от теста имеющего большую производительность.

Стабильность результатов оценивается по характеру роста вероятности при росте значений мгновенного FPS.

Пунктирная линия — график идеально стабильного теста

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

Точка по которой производится оценка положения идеально вертикальной линии — модальное значение. Оно может быть определено по графику согласно п.7.3.2 настоящего руководства или может быть примерно оценено по наклону касательной линии к графику.

Косательные к графику

Медианное значение соответствуют точке в которой касательная к графику имеет наибольший угол к оси абсцисс (ближе всего к вертикальному положению).

По графикам распределения вероятности наиболее просто определить достоверность тестирования при многократном повторении тестов.

3 прохода одного теста с ошибочным измерением

Рекомендуется выполнять не менее трёх тестовых измерений каждого тестирования. На примере выше показано как два из трёх результатов повторяют друг друга, а третий в области низких FPS существенно отличается от них. В данном случае для анализа данных следует исключить выбивающееся значение.

Важно отметить, что допускается отбрасывать одно измерение в случае его отхождения в меньшую сторону, так как такое измерение обусловлено, скорее всего, фоновой активностью ОС. В случае, если два значения имеют производительность ниже, а третье — существенно выше следует провести повторное тестирование!

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