Логотип игрового форума RF-Cheats.ru    
Новости онлайн игр Правила форума Чёрный рынок Платные услуги Гаранты Арбитраж

Вернуться   Чит портал RF-Cheats.ru - форум читеров и ботоводов в мире онлайн игр > > >
Важная информация

Статьи, гайды по WoT

: Статьи, гайды, инструкции по World of Tanks
Читы и обход фроста для RF Online без хайдаБоты и читы для Perfect World бесплатно без хайдаМоды и читы для World of Tanks (WoT) бесплатно без хайдаМоды и читы для Armored Warfare бесплатно без хайдаБоты и читы для DOTA 2 бесплатно без хайдаБоты и читы для Black Desert Online бесплатно без хайдаЧиты на ArcheAge бесплатно без хайдаЧиты для Warface бесплатно без хайдаВзлом ВКонтакте и ОдноклассниковСписок разделов со всеми играмиЧиты для онлайн игр

Ответ
 
Опции темы
Старый 25.10.2011, 02:39   #1
palanik
Постоялец
Аватар для palanik
OFFLINE
Регистрация: 26.08.2011
Сообщений: 130
Благодарностей:
60 всего
Мнения: + 114
Репутация: 181
Отправить сообщение для palanik с помощью Skype™

Ускоряем загрузку карт


Заметил я как-то, что на моём компьютере карты в WoT загружаются очень долго — больше минуты. Заходишь, бывает, в бой, а он уже секунд 30 идёт. А иногда вообще обнаруживаешь свой танк уже в виде горящих обломков. Компьютер мой, конечно, старенький и давно просит апгрейда, но вначале можно попытаться сделать что-то программным путём.

Итак, первое дело — определить причину тормозов. Список подозреваемых, в принципе, не очень большой:
  • CPU
  • RAM
  • HDD
  • Сеть
  • Криворукость разработчиков игры
  • Барабашка
Начнём оперативно-розыскные мероприятия с очной ставки. Берём прекрасную утилиту Process Monitor от Sysinternals, запускаем, добавляем в фильтры мониторинг процесса worldoftanks.exe и — поехали. Стартуем игру, начинаем бой, ждём загрузки карты и смотрим на результаты мониторинга.
Как видно из скриншота, загрузка CPU, памяти и сети далеки от максимальных. А вот график загрузки HDD весьма неровный, есть пики и провалы. Давайте посмотрим детальнее. Жмём «Tools->File summary...». Бинго! Тут мы видим целую кучу операций ввода\вывода (70 602 штуки, если быть точным).
Общий объем читаемых по ходу загрузки данных составляет примерно 450 МБ, время работы файловых операций — более 50 сек. Значит именно файловые операции занимают большую часть времени загрузки карты. Оно и немудрено — в WoT хорошо проработанные карты, модели танков, всякие там дома\деревья\камни. 450 МБ читаемых данных выглядит адекватной ценой за всё это. Но как же мы можем ускорить время загрузки? Ведь все эти данные игре всё-равно нужно прочитать. Есть старый проверенный способ ускорения файловых операций — RAM диск. Но вот в чём беда — в лоб применить его не выйдет. Игра занимает 11 ГБ, а на моей машине всего 4 ГБ ОЗУ. То есть даже создав RAM диск размером 11 ГБ и поместив на него всю игру, я не обману законы физики и операционную систему — диск может и создастся, но данные на нём будут свопится на всё тот же жесткий диск, от использования которого мы хотим уйти. Не вариант.

Что ж, копнём глубже — посмотрим, обращения к каким именно файлам занимает больше всего времени. Открываем вкладку «By folder» и видим следующую картину.
Большую часть ресурсов кушает обращение к файлам в папке %World_of_tanks%\res. Тут можно выделить следующие подпапки:
  • audio: 14.48 сек — папка занимает 200 МБ
  • content: 9.93 сек — папка занимает 844 МБ
  • spaces: 6.19 сек — папка занимает 419 МБ
  • vehicles: 8.60 сек — папка занимает 1.7 ГБ
Если бы мы могли поместить в память файлы из некоторых этих папок, то загрузка карты значительно бы ускорилась. Например поместив в ОЗУ файлы из папок audio и spaces, мы выиграем 21 секунду времени ценой 619 МБ ОЗУ — вполне неплохо. Но в лоб этого сделать не выйдет — как же игре объяснишь, что часть её ресурсов лежит тут, а часть — там? В этом месте я уже хотел удариться в жёсткий хардкор вдухе Harkonnen'a:
  1. Загружаем нужные файлы в память
  2. С помощью какого-нибудь Microsoft Detours или ApiHijack вешаем хуки на функции CreateFile, ReadFile (и может что-то еще) в процессе Worldoftanks.exe.
  3. В хуках определяем, какой именно файл пытается читать WoT. Если один из наших — даём ему данные из памяти, если левый — перекидываем вызов на настоящие функции файлового ввода\вывода.
Но, к сожалению, не сложилось — мне в голову пришла идея, которая позволила сделать всё в разы проще и этим всё испортила :). Идея состояла в том, что, дескать, как бы классно в этом месте было бы быть пользователем *nix-систем, где есть прекрасная команда mount, позволяющая примонтировать что угодно куда угодно. В Windows такого нет… Или есть? На периферии сознания витали какие-то смутные воспоминания и я полез в голову и Гугл за информацией (когда уже ребята из Гугла в конце-концов сделают поиск в моей голове — совсем обленились что-то!). Итак, вот что мы имеем под Windows:
  • subst — делает ровно противоположное тому, что нам надо. Позволяет создать новый виртуальный диск, корнем которого будет являться заданная папка. А нам нужно наоборот — связать существующий диск с «виртуальной» папкой.
  • Cпособ, описанный в Microsoft KB 307889 — на первый взгляд делает то, что нам нужно. Позволяет для файловой системы NTFS создать связь между некоторой папкой и корнем диска. Прекрасная штука, но, к сожалению, не заработала с моим RAM-drive (даже когда я отформатировал его в NTFS).
  • Ну и наконец я решил поискать там, откуда подобный поиск следовало начинать — в списке утилит от Sysinternals. И, конечно же, там нашлось то, что мне было нужно. Утилитка Junction позволяет примонтировать к определенной папке любой путь в нашей файловой системе (есть еще одна похожая — linkd).
Таким образом, окончательный алгоритм выглядит так:
  1. Берём любой RAM-drive (например из вот-этого списка). Я взял вот этот.
  2. Думаем, сколько ОЗУ мы можем выделить под кеширование.
  3. Переписываем папки с ресурсами игры на RAM-drive (оригинальные папки переименовываем — они нам еще понадобятся).
  4. С помощью Junction монтируем папки на Ramdrive в папку ресурсов игры. Как-то так:
    «junction D:\Games\World_of_Tanks\res\audio r:\audio»
  5. Запускаем игру и наслаждаемся.
К стати, все эти пункты можно реализовать в одном батнике, а во втором — откат всего обратно.

Конечно, в этом всём деле важно не переборщить, чтобы объем файлов на RAM-drive не стал столь большим, что ОС решит задействовать своппинг — тогда вся идея летит к чертям. Но вот что вышло у меня:
Время обращения к файлам в папках на RAM-drive упало практически до нуля, карта стала грузиться намного быстрее, я стал появляться часто еще до начала предстартового отсчёта, успевать перекинуться парой фраз с союзниками перед началом боя. В общем, чего хотел — добился. Жаль всё-же что не довелось глубже покопаться в недрах игры и заюзать хуки — но зато мой способ не нарушает лицензионного соглашения WoT, что тоже немаловажно.
 
Ответить с цитированием
Сказали спасибо:
Sorck (10.03.2016), Олег Еси (15.12.2015), Fl1nt (26.03.2015), jarrad (08.03.2015), TeslaSoldier (24.12.2014), Datsik (31.07.2014), Недоступно (09.07.2014), lexnuke (28.04.2014), jonoton5 (28.04.2014), LiSred (16.04.2014), !BleaK! (18.03.2014), Недоступно (14.02.2014), Demetriss (15.12.2013), andrewcyberpunk (25.10.2013), ksv (02.04.2013), denso (09.02.2012), котопес (02.11.2011), Тигрь (02.11.2011), kpoxamar (31.10.2011), Artemq (29.10.2011), vax (28.10.2011)


Старый 25.10.2011, 08:34   #2
Spawn-2002
Нуб
Аватар для Spawn-2002
OFFLINE
Регистрация: 24.11.2010
Возраст: 41
Сообщений: 0
Благодарностей:
51 всего
Мнения: + 64
Репутация: 154

del ибо надо

Последний раз редактировалось Spawn-2002; 25.10.2011 в 08:36.
 
Ответить с цитированием
Старый 25.10.2011, 16:57   #3
Kakadu
Гость
Аватар для Kakadu
Сообщений: n/a
Благодарностей:
0 всего

Прям завкафедры логистики и т.п., но в большинстве случаев виновато качество Вашего интернета.
Хотя владельцы мастодонтов скажут Вам огромное спс за работу.
 
Ответить с цитированием
Старый 27.10.2011, 00:08   #4
palanik
Постоялец
Аватар для palanik
OFFLINE
Регистрация: 26.08.2011
Сообщений: 130
Благодарностей:
60 всего
Мнения: + 114
Репутация: 181
Отправить сообщение для palanik с помощью Skype™

Цитата:
Сообщение от Kakadu Посмотреть сообщение
Хотя владельцы мастодонтов скажут Вам огромное спс за работу.
Они и есть целевая аудитория этого способа.
 
Ответить с цитированием
Старый 28.10.2011, 14:36   #5
vax
На доске почёта
Аватар для vax
OFFLINE
Регистрация: 08.12.2008
Сообщений: 15
Благодарностей:
69 всего
Мнения: + 465
Репутация: -181

Полезная статья! Решил такую же проблему покупкой нового компа и стало приятно играть и тд...
 
Ответить с цитированием
Сказали спасибо:
gorbi_80 (22.12.2017)
Старый 29.10.2011, 18:08   #6
Minnows
Гость
Аватар для Minnows
Сообщений: n/a
Благодарностей:
0 всего

никуя не понЭл..(
 
Ответить с цитированием
Старый 29.10.2011, 18:19   #7
Artemq
Гость
Аватар для Artemq
Сообщений: n/a
Благодарностей:
0 всего

Тебе надо
palanik ,+100500 сообщений
 
Ответить с цитированием
Старый 30.10.2011, 17:11   #8
palanik
Постоялец
Аватар для palanik
OFFLINE
Регистрация: 26.08.2011
Сообщений: 130
Благодарностей:
60 всего
Мнения: + 114
Репутация: 181
Отправить сообщение для palanik с помощью Skype™

Кстати говоря, способ актуален и для многих других игр.
 
Ответить с цитированием
Сказали спасибо:
дмитрич2017 (01.10.2016)
Старый 31.10.2011, 08:24   #9
Spawn-2002
Нуб
Аватар для Spawn-2002
OFFLINE
Регистрация: 24.11.2010
Возраст: 41
Сообщений: 0
Благодарностей:
51 всего
Мнения: + 64
Репутация: 154

Остается только добавить.
"Чтоб полностью использовать данный метод лучше всего иметь примерно 12Гигов оперативы, чтоб можно было создать 6-ти гиговый виртуальный диск переписать туда игру и играть с него. Правда при наличии такого объема оперативы заморачиваться с этим смысла уже нет :)".

А способ и правда прикольный, счас думаю кому продать свои 4х2 чтоб купить 4х4 и получить 16Гиг оперативы.
 
Ответить с цитированием
Старый 02.11.2011, 07:47   #10
dark
Администратор
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 951
Благодарностей:
31,657 всего
Мнения: + 18004
Репутация: 101634
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

palanik +40 постов

Создание читов на заказ | Правила форума | Обмен электронных валют

База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мануал перенос карт RF Online 2.2.4 В 2.2.3 FlyGirl Гайды, статьи по RF Online серверам 9 05.01.2017 20:41
Убираем загрузку FROST vampysick Архив 13 07.05.2012 00:18
[фришки] убираем загрузку фроста GU wodewill Гайды, статьи по RF Online серверам 3 08.09.2011 17:00

Мир танков | Проект "Армата" | ArcheAge | Black Desert | РФ Онлайн | Айон | Майнкрафт | Браузерные игры
Элдер скролс | Р2 Онлайн | Реквием Онлайн | ПУБГ | Роял Квест | ГТА Санадреас | Контра | Дота 2
Мир кораблей | Лига легенд | Arma2 DayZ mod | The War Z | Карос: Начало | Tera Online
Читы для всех Онлайн-игр