Как отслеживать FPS в UWP‑играх на Windows 10

Быстрые ссылки
- PresentMon — бесплатно, но требует сборки и работы с командной строкой
- Dxtory — удобный оверлей и GUI, но платный
Инструменты вроде FRAPS или NVIDIA ShadowPlay удобны для традиционных игр, но они не всегда работают с играми Universal Windows Platform (UWP). PresentMon и Dxtory — два инструмента, которые измеряют производительность на более низком уровне Windows и корректно работают с UWP‑приложениями. Некоторые игры содержат встроенные счётчики FPS, но большинство — нет.
PresentMon — бесплатно, требует немного усилий
Related: Why You Shouldn’t Buy Rise of the Tomb Raider (and Other PC Games) from the Windows Store
PresentMon — это открытый инструмент, созданный разработчиком в Intel. Он использует трассировку событий Windows (ETW) для мониторинга команд «present» и записи данных о них. Благодаря этому PresentMon работает с DirectX 10, 11 и 12 и может отслеживать приложения UWP, потому что анализирует события на уровне ОС, а не взаимодействует с самим приложением.
Важно: PresentMon — это консольная утилита, у неё нет красивого графического интерфейса. Но её можно использовать для сбора точных логов и последующего анализа.
Как собрать и запустить PresentMon
- Скачайте ZIP‑архив репозитория PresentMon с его страницы (кнопка “Download ZIP”).
- Установите Visual Studio Community (бесплатно) и разрешите загрузку необходимых компонентов/компиляторов.
- Распакуйте PresentMon и откройте файл PresentMon.sln в Visual Studio.

- В Visual Studio выберите Build > Build Solution для сборки проекта.

- После успешной сборки у вас появится папка x64 с файлом PresentMon64.exe. Скопируйте его в удобное место (Desktop или Downloads).

Как найти PID запущенной UWP‑игры
- Запустите игру, которую хотите мониторить.
- Откройте Диспетчер задач (Ctrl+Alt+Delete → Диспетчер задач) и, если нужно, нажмите “Подробнее”.
- Правой кнопкой по заголовку столбцов на вкладке Процессы включите столбец PID.

- Найдите процесс игры и запомните его PID — он будет меняться при каждом запуске приложения.

Запуск PresentMon
- Откройте командную строку от имени администратора (правый клик по Пуск → “Командная строка (Админ)” или Windows+X → соответствующий пункт).

- Перейдите в каталог с PresentMon64.exe, например:
cd C:\path\to\PresentMon-master\x64\Debug- Запустите PresentMon с указанием PID (замените #### на номер процесса):
PresentMon64.exe -process_id ####
После запуска вы увидите значения FPS в окне командной строки. PresentMon не рисует оверлей — проверять показания придётся возвращаясь в окно консоли.
Совет: для длительных тестов перенаправляйте вывод в файл и анализируйте позже.
Важно: PID меняется при каждом запуске. Если игра закрывается и открывается снова, получите новый PID.
Dxtory — удобно и с оверлеем, но платно
Dxtory — более пользовательский инструмент, который, как и PresentMon, читает данные на нижнем уровне Windows и потому совместим с UWP‑играми. Нужна версия build 2.0.134 или новее для корректной работы с DirectX 12.
Приложение предоставляет графический интерфейс и может накладывать счётчик FPS поверх игрового окна UWP. Это похоже на FRAPS по удобству и возможностям.
Dxtory распространяется платно: лицензия стоит 3800 JPY (примерно 34.5 USD). Разработчик предлагает пробную версию.
Как начать с Dxtory
- Скачайте “latest” билд Dxtory из официального источника (не “stable” старой сборки).
- Установите приложение и запустите его перед запуском игры.
- Запустите UWP‑игру — счётчик FPS появится в левом верхнем углу по умолчанию.

Вы также можете переключиться в окно Dxtory для изменения настроек и подробной информации. Чтобы убрать счётчик, закройте приложение.

Когда эти инструменты не работают и альтернативы
Counterexample: ни PresentMon, ни Dxtory не смогут корректно мониторить FPS, если игра использует собственный, нетрадиционный механизм презентации кадров, или если драйвер видеокарты полностью троттлит данные ETW. Также возможны проблемы при запуске игр в режимах с эксклюзивным доступом к видеовыходу или при агрессивных накладках софта‑защит (анти‑чит), которые блокируют инструменты сторонних разработчиков.
Альтернативные подходы:
- Использовать встроенные профайлеры в игровых движках (если доступны) или режимы разработчика в самой игре.
- Сравнивать вывод утилит с аппаратными средствами мониторинга (внешний мониторинг через capture card) для верификации.
- Для стриминга — использовать потоковые ПО, которые поддерживают оверлеи на уровне драйвера, если они обновились для UWP.
Методология: как получить корректный и сопоставимый FPS
Мини‑методология для стабильного теста:
- Перезагрузите систему и закройте фоновые приложения.
- Установите одинаковые графические пресеты и разрешение при всех запусках.
- Прогрейте игру 2–3 минуты перед записью данных.
- Проводите тесты по нескольким сценариям (меню, боёвка, открытый мир).
- Собирайте логи и усредняйте значения по 30–60 секунд интервалам.
Критерии приёмки
- Инструмент предоставляет значения FPS в читаемом формате.
- Показания повторяемы при одинаковых условиях теста.
- Для автоматизированных тестов возможно извлечение логов в CSV.
Чек‑листы по ролям
Для игрока
- Установить Dxtory и проверить оверлей в игре.
- Убедиться, что оверлей не мешает HUD.
- При необходимости выключить оверлей перед записью видео.
Для стримера
- Настроить сочетания клавиш для включения/выключения оверлея.
- Проверить совместимость с OBS/XSplit.
- Тестировать длительные сессии на утечку памяти.
Для тестировщика/QA
- Собирать логи PresentMon для автоматического анализа.
- Проводить тесты в нескольких конфигурациях железа.
- Сравнивать результаты с эталонными запусками.
Тестовые кейсы и приёмка
- Тест: статическая сцена 60 секунд
- Ожидаем: стабильный FPS ±5% от среднего.
- Тест: стрессовая сцена с большим количеством объектов
- Ожидаем: падение FPS при росте нагрузки, лог логирует пики и провалы.
- Тест: переключение между оконным и полноэкранным режимом
- Ожидаем: инструмент сохраняет корректные значения в каждом режиме.
Советы по устранению проблем
- Если PresentMon не показывает данные: убедитесь, что вы запустили консоль от имени администратора и что PID верный.
- Если Dxtory не отображает оверлей: проверьте версию Dxtory (используйте “latest”) и обновите драйвер видеокарты.
- Конфликт антивируса/анти‑чита: временно отключите их для теста, если политика безопасности позволяет.
Сравнение инструментов — краткая матрица
- PresentMon: бесплатно, точные логи, командная строка, нет оверлея.
- Dxtory: платно, GUI и оверлей, удобно для игрового использования.
Краткий глоссарий
- UWP: Universal Windows Platform — платформа приложений Windows Store.
- PID: Process ID — идентификатор процесса в системе.
- Present: API‑команда, отправляющая кадр на вывод.
- Oверлей: графический слой поверх отображаемого окна.
Решающее дерево выбора
flowchart TD
A[Нужен оверлей во время игры?] -->|Да| B{Готов платить за ПО?}
A -->|Нет| C[Использовать PresentMon для логов]
B -->|Да| D[Использовать Dxtory]
B -->|Нет| C
C --> E[Анализировать логи и экспортировать CSV]
D --> F[Настроить оверлей и сочетания клавиш]Безопасность и конфиденциальность
Оба инструмента работают на локальной машине и не обязаны отправлять телеметрию внешним серверам. При использовании билдов из интернета проверяйте подписи и источники загрузки. Не используйте сомнительные модификации, особенно если вы запускаете игры с анти‑читом.
Заключение
PresentMon и Dxtory — рабочие варианты для мониторинга FPS в UWP‑играх на Windows 10. PresentMon подойдёт для инженеров и тестировщиков, которым нужны лог‑файлы и точный анализ; Dxtory — для игроков и стримеров, которые хотят видеть счётчик прямо в игре. Выбор зависит от вашей задачи: автоматизация и анализ против удобства и оперативного визуального контроля.
Короткая рекомендация: если вы проводите регулярные тесты и интегрируете анализ в пайплайн — используйте PresentMon. Если вам нужен простой мониторинг во время игры — попробуйте Dxtory (или его альтернативы, когда они обновятся для UWP).
Extras:
- Техническая справка: PID нужно получать перед каждым запуском теста.
- Если вам нужно экспортировать логи в CSV — сохраняйте вывод PresentMon в файл и анализируйте в Excel/скриптах.
Сводка
- PresentMon — бесплатно, для инженеров и QA.
- Dxtory — платно, удобно для игроков и стримеров.
- Всегда проверяйте совместимость с DirectX 12 и режимами отображения игры.
Похожие материалы
Отключить и настроить уведомления на iPhone и iPad
Сброс PIN-кода родительского контроля Switch
Скрыть и заблокировать альбом «Скрытые» на Mac
Как включить «Привет, Кортана» в Windows 10
DSU Loader: установить GSI на Android