Автоматизируем процесс замера производительности в играх (продолжение)
реклама
Оглавление
- Вступление
- Тестовый стенд
- Программное обеспечение
- Продолжение автоматизации процесса
- Arcania: Gothic 4
- Battlefield Bad Company 2
- Borderlands
- Call of Duty: Black Ops
- Dragon Age Origins
- Medal of Honor (2010)
- Metro 2033
- S.T.A.L.K.E.R.: Call of Pripyat
- Заключение
Вступление
Перед тем, как приступить к прочтению данной статьи – рекомендуется прочитать вводный материал, иначе будет сложно понять, о чём тут речь вообще.
В начальном материале по попыткам автоматизации процесса замера производительности были рассмотрены основы написания скриптов в 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
реклама
Теги
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила