DirectX - остановить рендеринг, чтобы уменьшить количество используемых ресурсов? - PullRequest
3 голосов
/ 02 августа 2011

Недавно я писал бота для игры, которая использует бэкэнд DirectX для своего рендеринга.Мне удалось «взломать» игру и позволить мне запускать несколько экземпляров.К сожалению, это серьезно сказалось на использовании процессора / оперативной памяти моего компьютера.Я хотел бы оптимизировать и уменьшить количество ресурсов, которые съедает каждый экземпляр.Таким образом, у меня есть пара вопросов:

  • Если я остановлю DirectX от рендеринга, это увеличит производительность?
  • Как я могу это сделать?

У меня есть несколько идей о том, как это сделать - я полагаю, я могу просто подключить функцию рендеринга и заставить ее вернуться, ничего не делая.Однако мой вопрос - заметно улучшит производительность?

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 01 ноября 2013

Первое: нет, немедленный возврат из вызова рендеринга не уменьшит нагрузку на процессор, потому что тогда вы заняты ожиданием. Вы должны манипулировать своим основным циклом так, чтобы он каждый раз ожидал ввода или в течение небольшого времени ожидания. Это дает время другим инстанциям. В первой попытке вы можете просто положить туда Sleep (небольшое количество). Конечно, это уменьшает FPS каждого экземпляра, но это позволит другим приложениям работать более плавно.

И во-вторых: нет, если вы уменьшите частоту кадров, использование оперативной памяти будет не меньше. Чтобы уменьшить нагрузку на память, вам нужно найти более сложные способы, такие как удаление текстур, когда они вам больше не нужны, и т. Д.

...