

12 лет спустя появилось объяснение, как именно Denuvo снижает производительность
Содержание
Ищете идеальный компьютер?
Мы поможем подобрать ПК под игры, работу или учебу.
Игры с системой защиты Denuvo снижают FPS — неоспоримый факт, хотя сами разработчики это отрицают. Что правда, спустя почти три года внятных доказательств так и не предоставили. Факт неоспоримый, но как именно это происходит, и где в системе образуется «бутылочное горлышко», до сих пор не было известно широкой общественности.
Теперь блогер Натан Бэггс проанализировал работу системы защиты. Его выводы подтвердил программист Валентин Игнатьев. Ну а мы кратко рассказываем, что к чему.
Краткое содержание
- Анализ Denuvo показывает, как и почему эта программа влияет на производительность в играх;
- Игры работают хуже из-за того, что большая часть кэша процессора и оптимизаций не используются;
- Также проверки синхронизации, идентификация по «отпечатку» системы и проверки целостности создают дополнительную нагрузку на процессор.
Denuvo «под капотом» по-простому
Корень проблемы — запуск игры из-под виртуальной машины, а не «наживую», что приводит к куче лишних операций. Это на корню убивает оптимизацию от разработчиков, от производителей процессоров (кэши L2 и L3 становятся практически бесполезны). Процессор вынужден часто обновлять кэши и чаще обращаться к оперативной памяти, скорость которой гораздо меньше.


Среди прочего — лишняя нагрузка на планировщик задач Windows. Denuvo генерирует ложные переходы, меняет последовательность инструкций. В итоге это путает планировщик задач, путает алгоритмы предсказаний, процессор вынужден тратить время на исправление ошибок прогнозирования. Особенно этот эффект заметен в сложных сценах.
Denuvo «под капотом» по-умному
Denuvo оборачивает части кода игры в пользовательскую виртуальную машину. Обычные скомпилированные инструкции преобразуются в наборы инструкций этой виртуальной машины. Во время выполнения JIT-компиляторы виртуальной машины (VM JIT) компилируют преобразованные инструкции в формат, который может выполнить реальный процессор, но при этом вносят ненужные переходы и обфускацию (превращение нормального кода в сложный-запутанный, но работоспособный), заставляя конвейер инструкций и предсказатель ветвлений процессора работать с большей нагрузкой.

Оптимизированные циклы, доступ к памяти и порядок инструкций сводятся на нет виртуальной машиной Denuvo путём переупорядочивания и обертывания инструкций. Это приводит к потере оптимизации и кэша ЦП в играх. Процессоры полагаются на кэширование и спекулятивное выполнение, поэтому, когда Denuvo постоянно перестраивает код по нестандартным схемам, кэш становится недействительным, что резко снижает производительность.
Рекомендации
Чем слабее процессор, тем сильнее ощущается эффект Denuvo. Многоядерные чипы с высокой частотой подтверждены проблеме меньше, потому что имеют много грубой вычислительной мощности. Процессоры попроще сильнее зависят от оптимизации и алгоритмов предсказания. И да, в отношении Denuvo видеокарта «не роляет».
К сожалению, особенно не повезло владельцам процессоров AMD Ryzen X3D. Denuvo практически убивает кэш, а Ryzen X3D от него сильно зависят.
Не пропусти главное в мире ПК
Мы публикуем последние новости из компьютерного мира. Подписывайся, чтобы быть в курсе и ничего не пропустить.




