Gta 5 загружает процессор на 100

Обновлено: 21.11.2024

ГТА Онлайн. Печально известен своей медленной загрузкой. Снова запустив игру, чтобы закончить некоторые из новых ограблений, я был шокирован (/s), обнаружив, что она по-прежнему загружается так же медленно, как и в день ее выпуска 7 лет назад.

Это было время. Пора разобраться в этом.

Разведка

Сначала я хотел проверить, не решил ли уже кто-нибудь эту проблему. Большинство результатов, которые я нашел, указывали на анекдоты о том, что игра настолько сложна, что ей нужно загружаться так долго, рассказы о том, что архитектура p2p-сети является мусором (не говорю, что это не так), некоторые сложные способы загрузки в историю. режим и одиночная сессия после этого и пара модов, которые позволяли пропустить видео с логотипом R * при запуске. Еще немного чтения сказало мне, что мы могли бы сэкономить колоссальные 10-30 секунд с этим вместе!

Тем временем на моем ПК…

Эталон

Я знаю, что мои настройки устарели, но что, земля, может занять в 6 раз больше времени для загрузки в онлайн-режиме? Я не смог измерить никакой разницы, используя метод загрузки из истории в онлайн, как другие обнаружили до меня. Даже если бы это сработало, результаты были бы в тени.

Я (не) один

Если этому опросу можно доверять, то проблема достаточно распространена, чтобы слегка раздражать более 80% игроков. Р* прошло 7 лет!

Посмотрев вокруг, чтобы выяснить, кто из ~20% счастливчиков загружается менее чем за 3 минуты, я наткнулся на несколько тестов с высокопроизводительными игровыми ПК и временем загрузки в онлайн-режиме около 2 минут. Я бы убил хак за 2 минуты загрузки! Это похоже на аппаратную зависимость, но что-то здесь не складывается…

Почему их режим истории до сих пор загружается около минуты? (Кстати, M.2 не учитывал логотипы запуска.) Кроме того, загрузка истории в онлайн занимает у них всего минуту больше, а у меня — еще около пяти. Я знаю, что их аппаратные характеристики намного лучше, но точно не в 5 раз лучше.

Высокоточные измерения

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

Потратив минуту на загрузку общих ресурсов, используемых как для сюжетного, так и для онлайн-режимов (что близко к уровню высокопроизводительных ПК), GTA решает максимально использовать одно ядро ​​​​на моей машине в течение четырех минут и больше ничего не делать.

Использование диска? Никто! Использование сети? Есть немного, но через несколько секунд он падает практически до нуля (не считая загрузки вращающихся информационных баннеров). Использование графического процессора? Нуль. Использование памяти? Совершенно плоский…

Что, это майнинг криптовалюты или что-то в этом роде? Я чувствую запах кода. Очень плохой код.

Один поток

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

Странно то, что он использует только ЦП. Я ожидал огромного количества чтений с диска, загружающих ресурсы, или множества сетевых запросов, пытающихся согласовать сеанс в сети p2p. Но это? Вероятно, это ошибка.

Профилирование

Профилировщики — отличный способ найти узкие места ЦП. Есть только одна проблема — большинство из них полагаются на инструментирование исходного кода, чтобы получить идеальную картину того, что происходит в процессе. И у меня нет исходного кода. Мне также не нужны показания с точностью до микросекунды — у меня узкое место на 4 минуты.

Введите выборку стека: для приложений с закрытым исходным кодом есть только один вариант. Сбрасывать стек запущенного процесса и текущее местоположение указателя инструкции для построения дерева вызовов с заданными интервалами. Затем добавьте их, чтобы получить статистику о том, что происходит. Есть только один профилировщик, о котором я знаю (может быть, здесь он невежественен), который может делать это в Windows. И не обновлялся более 10 лет. Это Люк Стэкуокер! Кто-нибудь, пожалуйста, дайте этому проекту немного любви :)

Обычно Люк группировал одни и те же функции вместе, но, поскольку у меня нет символов отладки, мне пришлось смотреть на ближайшие адреса, чтобы угадать, одно ли это место. И что мы видим? Не одно узкое место, а два!

В кроличью нору

Позаимствовал у друга полностью законную копию стандартного отраслевого дизассемблера (нет, я действительно не могу себе это позволить… на днях собираюсь научиться гидре ) Пошел разбирать GTA.

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

Похоже, здесь задействовано какое-то запутывание/шифрование, из-за которого большинство инструкций заменено тарабарщиной. Не беспокойтесь, нам просто нужно сбросить память игры, пока она выполняет часть, на которую мы хотим посмотреть. Инструкции должны быть деобфусцированы, прежде чем запускаться тем или иным образом. У меня завалялся Process Dump, поэтому я использовал его, но есть много других инструментов для подобных вещей.

Проблема первая: это… strlen?!

Разборка теперь уже менее запутанного дампа показывает, что у одного из адресов откуда-то вытащена метка! Это стрлен? Спускаясь по стеку вызовов, следующий помечен как vscan_fn, а после этого метки заканчиваются, хотя я почти уверен, что это sscanf .

Он что-то анализирует. Разбор чего? Разборка заняла бы вечность, поэтому я решил выгрузить несколько сэмплов из запущенного процесса, используя x64dbg. После некоторой отладки оказывается, что это… JSON! Они анализируют JSON. Огромные 10 МБ JSON с 63 тысячами элементов.

Что это? Судя по некоторым источникам, это данные для «каталога сетевого магазина». Я предполагаю, что он содержит список всех возможных предметов и улучшений, которые вы можете купить в GTA Online.

Устранение путаницы: я полагаю, что это предметы, которые можно купить за внутриигровые деньги, а не напрямую связанные с микротранзакциями.

Но 10 мегабайт? Это ничего! И использование sscanf может быть не оптимальным, но ведь это не так уж и плохо? Ну…

Да, это займет некоторое время... Честно говоря, я понятия не имел, что большинство реализаций sscanf называется strlen, поэтому я не могу винить разработчика, написавшего это. Я бы предположил, что он просто сканирует байт за байтом и может остановиться на NULL .

Вторая проблема: использовать массив Hash-...?

Оказывается, второго преступника вызывают рядом с первым. Они оба даже вызываются в одном и том же операторе if, как показано в этой уродливой декомпиляции:

Все ярлыки мои, понятия не имею, как на самом деле называются функции/параметры.

Вторая проблема? Сразу после синтаксического анализа элемент сохраняется в массиве (или во встроенном списке C++? Не уверен). Каждая запись выглядит примерно так:

Но до того, как он будет сохранен? Он проверяет весь массив, один за другим, сравнивая хэш элемента, чтобы увидеть, есть ли он в списке или нет. При ~63 000 записей (n^2+n)/2 = (63000^2+63000)/2 = 1984531500 проверяет правильность моей математики. Большинство из них бесполезны. У вас есть уникальные хэши, почему бы не использовать хэш-карту.

Я назвал его hashmap при реверсировании, но это явно не _a_hashmap . И становится еще лучше. Список хэш-массивов пуст перед загрузкой JSON. И все элементы в JSON уникальны! Им даже не нужно проверять, есть ли это в списке или нет! У них даже есть функция прямой вставки элементов! Просто используйте это! Сэр, ЧТО!?

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

План? Написать .dll, внедрить в GTA, подключить некоторые функции, . прибыль.

Проблема с JSON сложна, я не могу реально заменить их парсер. Замена sscanf на тот, который не зависит от strlen, была бы более реалистичной. Но есть еще более простой способ.

  • крючок strlen
  • ждите длинной строки
  • «кэшировать» его начало и длину.
  • если он вызывается снова в пределах диапазона строки, возвращает кешированное значение

Что касается проблемы с хэш-массивом, здесь все проще: просто полностью пропустите проверки дубликатов и вставьте элементы напрямую, поскольку мы знаем, что значения уникальны.

Полный исходный код PoC здесь.

Результаты

Ну, тогда это сработало?

Черт возьми, это так! :))

Скорее всего, это не устранит время загрузки у всех — могут быть и другие узкие места в разных системах, но это настолько зияющая дыра, что я понятия не имею, как R* не замечал ее все эти годы.

  • При запуске GTA Online существует узкое место в ЦП, связанное с одним потоком.
  • Оказалось, что GTA не может проанализировать файл JSON размером 10 МБ.
  • Сам синтаксический анализатор JSON плохо построен/наивен и
  • После синтаксического анализа происходит медленная процедура дедупликации элементов.

R* исправьте, пожалуйста

Если это каким-то образом дойдет до Rockstar: проблема не должна занимать больше дня, пока один разработчик не решит ее.Пожалуйста, сделайте что-нибудь с этим :

Так вот в чем дело - когда я запускаю GTA V, даже в главном меню диспетчер задач говорит, что ЦП используется на 100%, все ядра, все время - но на самом деле это не так!
Я знаю, насколько громко работает мой процессорный вентилятор и насколько процессор нагревается при большой нагрузке, но это не так. В диспетчере задач на вкладках «Процессы» и «Пользователи» я обнаружил, что, несмотря на то, что вверху отображается 100% загрузка ЦП в целом, при просмотре отдельных процессов я на самом деле использую около 50%. Так что же происходит?

У меня тоже проблемы с самой игрой. Несколько месяцев назад я играл в GTA V на Windows 7 без особых проблем. Игра использовала почти весь мой процессор (Core 2 Quad Q9550 @ 3,4 ГГц) большую часть времени, но работала хорошо, обычно 40-50 кадров в секунду.
Теперь я снова установил игру на Windows 10, и там происходят некоторые странные вещи :| Исправление некоторых из них просто добавляет новые.

Сначала игра занимала около 3-4 минут при загрузке сохраненной игры. Несмотря на то, что он установлен на SSD, и обычно это занимает около 30 секунд. Также было много текстур, которые не загружались. Поэтому я погуглил и узнал, что придание процессу GTA5.exe более высокого приоритета решает эту проблему. Я установил его на «выше нормы», и это действительно помогло, все вернулось в норму и снова заработало. Но я быстро нашел 2 проблемы с этим решением:
1. Любая другая программа, которая у меня запущена, не отвечает, так как GTA, вероятно, съедает все ресурсы, имея более высокий приоритет и все такое,
2. игра или система вылетает через некоторое время.
(к тому же менять приоритет каждый раз при запуске игры - отстой)

Итак, поскольку это решение было не очень хорошим, мне пришлось попробовать что-то другое. Я начал задаваться вопросом, почему игра загружается так долго, и я обнаружил, что по какой-то причине вместо загрузки в оперативную память (у меня 8 ГБ, около 7 ГБ свободно для использования) игра использует файл подкачки. Чертов файл подкачки! Как, черт возьми, Windows сообразила, что лучше использовать файл подкачки вместо того, чтобы использовать всю эту свободную оперативную память?!
Ну что ж, я решил уменьшить размер файла подкачки с 2 Гб до 128 Мб и посмотреть, что получится. Игра загружается нормально, диспетчер задач говорит, что использует ~ 3 ГБ. Выглядит неплохо. Но затем я получаю сообщение об ошибке, которое появляется, когда вы используете всю свою память, и оно говорит вам закрыть некоторые программы, иначе они могут потерять данные. Между тем, диспетчер задач показывает, что я фактически использую ~ 4 ГБ ОЗУ, половину того, что у меня есть. Затем через несколько секунд он просто убивает процесс GTA5.exe.
:|

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

Это становится смешным, несколько месяцев назад все отлично работало на Windows 7, ничего не изменилось, кроме новой ОС. И я никогда не видел, чтобы диспетчер задач показывал разное использование ЦП на вкладке производительности и другое на других вкладках. Есть идеи, ребята?

У меня есть легальные копии Windows и GTA V (без установленных модов), я несколько раз сканировал систему с помощью Защитника Windows и Malware-Bytes Anti Malware - угроз не обнаружено. Драйвера и игру переустанавливал. Система тоже довольно новая, установил ее, может быть, 2 недели назад. У меня есть защищенная паролем учетная запись администратора и обычная учетная запись пользователя, которую я использую. Запуск игры от имени администратора ничего не меняет. У меня нет проблем с любой другой видеоигрой или программой.

Мои системные характеристики:
МБ: GIGABYTE EP45-UD3LR (LGA 775)
ЦП: Core 2 Quad Q9550 OC @3,4 ГГц (8,5 x 400 МГц)
Графический процессор: MSI GTX 960 GAMING 2G
Оперативная память: Corsair 8 ГБ DDR2 1066 МГц (5-5-5-15)
Блок питания: CoolerMaster G550M
ОС и игра установлены на SSD.

Ваша GTA 5 загружает ЦП с ума? Этот совет может вернуть вам 25 % драгоценной вычислительной мощности.

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

Заметив, что ЦП борется и испытывает проблемы с зависаниями, особенно во время вождения, Гофтри решил выяснить, что вызывает такую ​​нагрузку на ЦП (в ПК были i3-4150 и GTX 660).

Выяснилось, что Grand Theft Auto V Launcher в диспетчере задач использует 25% ресурсов ЦП. Чтобы посмотреть, что произойдет, программа запуска Grand Theft Auto V была закрыта в диспетчере задач Windows, и сразу же стало доступно больше процессорного времени для самой игры. Проще говоря…

Выйдите из игры, удерживая нажатой клавишу ALT, откройте Диспетчер задач, закройте панель запуска Grand Theft Auto V и вернитесь в игру.

Нажатие клавиш ALT+TAB может привести к сбою, но попробовать стоит, чтобы посмотреть, улучшит ли это вашу производительность. Некоторые пользователи также предлагают повысить приоритет GTAV.exe в диспетчере задач, чтобы вы могли попробовать эти методы вместе и посмотреть, что получится.

Пока нам очень везло, и мы не сталкивались с какими-либо серьезными техническими проблемами с игрой и сбоями, но мы надеемся, что Rockstar выпустит несколько исправлений, чтобы решить некоторые из этих проблем.

Если вы хотите узнать, что мы думаем о версии для ПК, обязательно ознакомьтесь с нашей статьей о впечатлениях от порта для ПК, где мы тестировали игру на двух совершенно разных системах.

Правка: Привет, это Питер, я просто рассказываю историю Пола. Я попробовал это сам, потому что я все еще использую более старый процессор i3-2100 (в паре с 8 ГБ и 2 ГБ 7870). 5 лаунчер после загрузки очень помогает.

Я говорю о немедленном ускорении на 10–12 кадров в секунду по всем направлениям. Этот лаунчер должен быть сильно раздут.

Обновление: с тех пор, как мы опубликовали это и после дальнейшего тестирования, стало известно, что закрытие программы запуска может привести к сбою игры примерно через 30 минут. Имея это в виду, другим вариантом, который может помочь, является установка Grand Theft Auto V Launcher на низкий приоритет в диспетчере задач. Для этого щелкните правой кнопкой мыши процесс в диспетчере задач и установите для него низкий уровень.

Пакетный файл для простого запуска игры с настройками приоритета можно создать следующим образом.

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

Как снизить высокую загрузку ЦП?

Давайте рассмотрим, как устранить высокую загрузку ЦП в Windows* 10. Перезагрузите компьютер. Первый шаг: сохраните свою работу и перезагрузите компьютер. Завершить или перезапустить процессы. Откройте диспетчер задач (CTRL+SHIFT+ESCAPE). Обновите драйверы. Сканировать на наличие вредоносных программ. Параметры питания. Найдите специальные рекомендации в Интернете. Переустановка Windows.

Как снизить нагрузку на ЦП в игре?

Как справиться с высокой загрузкой ЦП/низкой загрузкой ГП? Проверьте драйверы графического процессора. Измените настройки в игре. Исправление затронутых игр. Отключите сторонние приложения, работающие в фоновом режиме. Отключите все режимы энергосбережения в BIOS/UEFI. Включите XMP в BIOS/UEFI. Если возможно, используйте 4 ядра и попробуйте разгон. Переустановите игру.

Грязно ли загружается процессор GTA?

На самом деле, он больше загружает ЦП, чем ГП. Большинство графических процессоров, даже серия GTX 200, могут довольно хорошо запускать GTA V. GTA V усложняет работу процессора из-за большой карты, которая постоянно рендерится во время исследования — по той же причине, по которой она работает более плавно на твердотельных накопителях, чем на жестких дисках. Больше всего пострадал процессор.

Основана ли GTA 5 на процессоре?

Последней игрой в этой серии является GTA V, которая существует уже более шести лет. Неудивительно, что GTA 5 определенно сильно загружает процессор и графический процессор, хотя до сих пор это была блестяще оптимизированная игра.

Сколько процессора использует GTA?

В среднем, я бы сказал, что загрузка ЦП составляет 60–80 %, а в городе — около 90–100 %. Как только я попадаю в разыскиваемые ситуации, он обычно используется между 95 % и 100 %.

Какая игра больше всего загружает ЦП?

7 игр с интенсивным использованием ЦП для оценки вашего процессора Civilization 5 или 6. Civilization — это 4-кратная стратегическая игра от разработчика Сида Мейера. Стелларис. Stellaris стала неожиданностью в 2016 году и быстро стала новым фаворитом среди поклонников 4x-стратегий. Total War: WARHAMMER 2. Assassin’s Creed: Истоки. Фар Край 5.

Почему у меня такая низкая загрузка графического процессора в GTA 5?

Попробуйте установить в настройках игрового видео DirectX 10.1 и установить для параметра "Качество травы" значение "Нормальное". Попробуйте отключить сглаживание или включить FXAA.

Плохая ли загрузка ЦП – 100?

Является ли 100% загрузка ЦП плохим? Для среднего ПК, если вы не занимаетесь кодированием видео, редактированием Photoshop, 3D-моделированием или бенчмаркингом вашего процессора, 100% загрузка процессора дольше нескольких секунд — это плохо. Это быстро повысит температуру процессора, и ваша система может зависнуть.

Почему загрузка ЦП равна 100, когда ничего не запущено?

Если Диспетчер задач не показывает, почему у вас высокая загрузка ЦП, основной причиной являются фоновые процессы. Если в диспетчере задач ничто не использует много ресурсов, но при этом наблюдается высокая загрузка ЦП, обязательно просканируйте свой компьютер. Если ЦП загружен на 100 %, когда ничего не работает, проверьте настройки параметров электропитания.

Почему у меня так много ресурсов ЦП?

Если загрузка ЦП составляет около 100 %, это означает, что ваш компьютер пытается выполнять больше работы, чем он может. Обычно это нормально, но это означает, что программы могут немного замедляться. Компьютеры, как правило, используют почти 100 % ресурсов ЦП, когда выполняют ресурсоемкие задачи, например игры.

Нагружает ли GTA CPU или GPU Reddit?

Это сильно загружает ЦП.Каждый объект, отрисовываемый в отложенном рендерере, вызывает около 3-4 вызовов отрисовки в базовой сцене.

Сколько ядер процессора использует GTA V?

Grand Theft Auto V Rockstar требует как минимум четырехъядерный процессор для работы GTA V. К сожалению, информации о движке RAGE компании или о том, что он делает с вычислительными ресурсами хоста, не так много. Однако мы знаем, что в этой игре используется DirectX 11 и требуется 64-разрядная операционная система.

Как я могу использовать 5-мегапиксельный графический процессор вместо центрального процессора?

Для графических процессоров AMD Radeon. Щелкните правой кнопкой мыши любую часть рабочего стола и выберите «Настройки AMD Radeon». Выберите «Система». Нажмите «FiveM.exe», «RedM.exe» или «LibertyM.exe» в зависимости от вашего случая. Выберите свой дискретный графический процессор в раскрывающемся списке. Наслаждайтесь!.

Хорошо ли 80 кадров в секунду для GTA?

60 кадров в секунду — это наилучшее возможное значение, а от 30 до 60 — нормально.

Требует ли ПК GTA 5?

Игра требовательна к графике, хотя и не самая требовательная из доступных игр. Видеокарты среднего и высокого уровня могут запускать GTA V с высокой частотой кадров более 100 кадров в секунду на высоких/ультра настройках при разрешении 1080p. На ультра или максимальных настройках можно играть даже в 4k с более новыми моделями графических процессоров высшего уровня.

Подходит ли Core i5 для GTA 5?

При разрешении 1080P/4K рекомендуемые системные требования для запуска GTA 5: процессор i5, 8 ГБ ОЗУ и NVIDIA GTX 660 2 ГБ.

Нагружает ли Valorant GPU или CPU?

Valorant – это игра, которая предпочитает использовать ваш процессор, а не графический процессор. Тем не менее, игра была создана для людей, которые имеют в виду низкие характеристики. Он был создан, чтобы работать практически на любом устройстве, имеющемся на рынке, с мощным ЦП, и для его нормальной работы не требуется хороший графический процессор.

Какой процессор лучше всего подходит для GTA 5?

GTA 5 Список лучших системных требований Операционная система: Windows 10. Процессор: набор микросхем Intel Core i7 10-го поколения / AMD AMD Ryzen 7 3700X 8 ядер с тактовой частотой до 4,4 ГГц, кэш-память 36 МБ, разъем AM4. Память: 16 ГБ оперативной памяти DDR4. Видеокарта: Zotac GeForce GTX 1050 Ti 4 ГБ. Звуковая карта: 100% совместимая с DirectX 10. Твердотельный накопитель: 128 ГБ.

Нагружает ли r6 ЦП или ГП?

Хотя для игры вам нужен (относительно) приличный двухъядерный процессор, оптимизация движка действительно пригодится, если вам удобно работать на низких настройках, поскольку для R6S требуется только графический процессор с 1 ГБ видеопамяти. бежать.

Читайте также: