Автоматизируем процесс замера производительности в играх (продолжение)


Оглавление

Вступление

Перед тем, как приступить к прочтению данной статьи – рекомендуется прочитать вводный материал, иначе будет сложно понять, о чём тут речь вообще.

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

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

Собственно, чего тянуть, приступим.

Тестовый стенд

Основная проверка работоспособности скриптов производилась на следующей конфигурации:

  • Материнская плата: MSI P55-GD65, bios 1.9;
  • Процессор: Intel Core i5-760 @ 3,5 ГГц (166,6x21);
  • Система охлаждения: Zalman CNPS10X Performa (120*120*25, ~1200 об/мин);
  • Термоинтерфейс: Xilence Silver Tim;
  • Оперативная память: Corsair CMX4GX3M2A1600C7 2*2 Гбайт DDR3-1600 (7-8-7-20, 1,65 В) @ 1666 МГц 7-8-7-20-1Т;
  • Видеокарта: NVIDIA GeForce GTX 295 1792 Мбайт 576/1242/1000 МГц;
  • Жесткий диск: Western Digital Caviar Blue (WD500AAKS), 500 Гбайт;
  • Блок питания: Corsair CMPSU-750HX (750 Вт);
  • Корпус: открытый тестовый стенд;
  • Монитор: 23" Acer V233H (1920x1080 / 60 Гц).

Программное обеспечение

  • Операционная система: Windows 7 Ultimate, build 7600.16385 RTM, x64;
  • Драйвер видеокарты: nVidia ForceWare 260.99 WHQL;
  • Дополнительное ПО: AutoHotkey 1.0.48.05; FRAPS 3.2.3, build 11797.

Версии .exe файлов игр:

  • Arcania: Gothic 4 (1.0);
  • Battlefield Bad Company 2 (1.0.1);
  • Borderlands (1.2);
  • Call of Duty: Black Ops (1.0);
  • Dragon Age Origins (1.0.9353);
  • Medal of Honor (2010) (1.0.75);
  • Metro 2033 (1.0.0.1);
  • S.T.A.L.K.E.R.: Call of Pripyat (1.6).





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

Arcania: Gothic 4

Как уже говорилось выше, теперь скрипт состоит не из одного файла, а из нескольких.

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

  • 01_Arcania.ahk – основное тело скрипта. В данном файле описан процесс запуска игры. Именно этот файл подлежит запуску для автоматизированного замера производительности.
  • 02_Bench.ahk – файл, отвечающий за замер производительности. Из-под него вызываются последующие файлы загрузки уровня и прохождения тестовой сцены.
  • 03_load.ahk – файл, отвечающий за загрузку тестовой сцены.
  • 04_scene.ahk – непосредственно тестовая сцена и замер производительности.
  • 05_exitmenu.ahk – отвечает за выход в главное меню по окончании замера производительности.
  • 06_exit.ahk – выход из игры.
  • 07_1920-1680.ahk – файл, отвечающий за смену разрешения экрана с 1920x1080 на 1680x1050.
  • 08_1680-1280.ahk – файл, отвечающий за смену разрешения экрана с 1680x1050 на 1280x1024.
  • 09_1280-1920.ahk – файл, отвечающий за смену разрешения экрана с 1280x1024 на 1920x1080.
  • 10_t1.txt – текстовый файл, в котором хранится значение паузы, необходимой для запуска игры.
  • 11_t2.txt – текстовый файл, в котором хранится значение паузы, необходимой для первой загрузки тестовой сцены.
  • 12_t3.txt – текстовый файл, в котором хранится значение паузы, необходимой для второй и каждой последующей загрузки тестовой сцены.
  • 13_i.txt – текстовый файл, в котором хранится значение переменной, применяемой для алгоритмов автоматической смены разрешения экрана.

Теперь более подробно по исходному коду каждого из файлов:

(Щелкните на ссылке, чтобы открыть .txt файл).

01_Arcania.ahk [2 KB]

Выше была представлена простейшая реализация файла 01_Arcania.ahk. Для смены разрешения экрана можно вставить соответствующие команды:

  • runwait, 07_1920-1680.ahk ;Смена разрешения экрана с 1920x1080 на 1680x1050;
  • runwait, 08_1680-1280.ahk ;Смена разрешения экрана с 1680x1050 на 1280x1024;
  • runwait, 09_1280-1920.ahk ;Смена разрешения экрана с 1280x1024 на 1920x1080.

Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.

Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:





runwait, 02_bench.ahk

runwait, 07_1920-1680.ahk

runwait, 02_bench.ahk

runwait, 08_1680-1280.ahk

runwait, 02_bench.ahk

runwait, 09_1280-1920.ahk

Подразумевается, что исходное разрешение экрана – 1920x1080.

02_bench.ahk [2 KB]

03_load.ahk [1 KB]

04_scene.ahk [1 KB]





Следующие два файла также не представляют особого интереса, и комментировать в них нечего:

05_exitmenu.ahk [1 KB]

06_exit.ahk [1 KB]

07_1920-1680.ahk [3 KB]

08_1680-1280.ahk [1 KB]

09_1280-1920.ahk [1 KB]

10_t1.txt, 11_t2.txt, 12_t3.txt, 13_i.txt

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

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

Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:





Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/Arcania_script.rar

Battlefield Bad Company 2

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

  • 01_BFBC2.ahk – основное тело скрипта. В данном файле описан процесс запуска игры. Именно этот файл подлежит запуску для автоматизированного замера производительности.
  • 02_Bench.ahk – файл, отвечающий за замер производительности. Из-под него вызываются последующие файлы загрузки уровня и прохождения тестовой сцены.
  • 03_load.ahk – файл, отвечающий за загрузку тестовой сцены.
  • 04_scene.ahk – непосредственно тестовая сцена и замер производительности.
  • 05_exitmenu.ahk – отвечает за выход в главное меню по окончании замера производительности.
  • 06_exit.ahk – выход из игры.
  • 07_1920-1680.ahk – файл, отвечающий за смену разрешения экрана с 1920x1080 на 1680x1050.
  • 08_1680-1280.ahk – файл, отвечающий за смену разрешения экрана с 1680x1050 на 1280x1024.
  • 09_1280-1920.ahk – файл, отвечающий за смену разрешения экрана с 1280x1024 на 1920x1080.
  • 10_r.txt – текстовый файл, в котором хранится идентификатор текущего разрешения экрана.
  • 11_t1.txt – текстовый файл, в котором хранится значение паузы, необходимой для запуска игры, точнее - до момента появления пропускаемого вступительного видео.

Теперь более подробно по исходному коду каждого из файлов:

(Щелкните на ссылке, чтобы открыть .txt файл).

01_BFBC2.ahk [1 KB]

Выше была представлена простейшая реализация файла 01_BFBC2.ahk. Для смены разрешения экрана можно вставить соответствующие команды:

  • runwait, 07_1920-1680.ahk ;Смена разрешения экрана с 1920x1080 на 1680x1050;
  • runwait, 08_1680-1280.ahk ;Смена разрешения экрана с 1680x1050 на 1280x1024;
  • runwait, 09_1280-1920.ahk ;Смена разрешения экрана с 1280x1024 на 1920x1080.

Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.

Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:

runwait, 02_bench.ahk

runwait, 07_1920-1680.ahk

runwait, 02_bench.ahk

runwait, 08_1680-1280.ahk

runwait, 02_bench.ahk

runwait, 09_1280-1920.ahk

Подразумевается, что исходное разрешение экрана – 1920x1080.

02_bench.ahk [1 KB]

03_load.ahk [1 KB]

04_scene.ahk [1 KB]

05_exitmenu.ahk [1 KB]

06_exit.ahk [1 KB]

07_1920-1680.ahk [1 KB]

08_1680-1280.ahk [1 KB]

09_1280-1920.ahk [1 KB]

10_r.txt, 11_t1.txt

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

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

Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:

Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/BFBC2_script.rar

Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Страницы материала
Страница 1 из 3
Оценитe материал
рейтинг: 4.4 из 5
голосов: 30

Теги

Комментарии 643 Правила



Возможно вас заинтересует

Популярные новости

Сейчас обсуждают