Comments 83
где вы раньше были… я же по этой причине играть перестал. наверно снова начну!)
так а толку? все равно таймер еще ждать.
Ага :) С 4gb в ноуте долго происходит только первая загрузка, потом файловый кэш в Win7 делает своё дело. Даже если из игры выйти и запустить чуть позже.
2tangro: Хороший детектив, прочитал с удовольствием :) я думаю там дело в seek, т.к. файлы вероятно читаются не в порядке инсталляции (т.е. не в порядке размещения на жёстким диске) и это, скорее всего так же касается чтения кусков из «pak» fsb файлов в каталоге audio. Но это гипотеза :) и как такое ускорить через хуки — с ходу тяжело придумать…
Есть идея отпрофайлить, в каком порядке это чтение чаще всего происходит и на основании этой информации сделать «дефрагментированную» пересборку файлов игры, куда потом и перенаправлять вызовы OpenFile/ReadFile. Метод, в принципе, довольно универсальный — может не только танкам пригодиться :)
2tangro: Хороший детектив, прочитал с удовольствием :) я думаю там дело в seek, т.к. файлы вероятно читаются не в порядке инсталляции (т.е. не в порядке размещения на жёстким диске) и это, скорее всего так же касается чтения кусков из «pak» fsb файлов в каталоге audio. Но это гипотеза :) и как такое ускорить через хуки — с ходу тяжело придумать…
Есть идея отпрофайлить, в каком порядке это чтение чаще всего происходит и на основании этой информации сделать «дефрагментированную» пересборку файлов игры, куда потом и перенаправлять вызовы OpenFile/ReadFile. Метод, в принципе, довольно универсальный — может не только танкам пригодиться :)
Хм. То есть решением было бы ssd поставить, угу)
SSD != RAM-диск
Да, но он бы решил проблему с медленной загрузкой карт.
К тому же не тешьте себя, настоящий «правильный» ram-disk бывает только в linux/unix. Так что ваше решение != RAM-диск тоже.
К тому же не тешьте себя, настоящий «правильный» ram-disk бывает только в linux/unix. Так что ваше решение != RAM-диск тоже.
«Настоящий правильный RAM-диск» — в смысле такой, который никогда не будет выгружен в своп? Или что?
В смысле который /dev/shm — может монтироваться куда угодно, быть частью RAID1 (нам же ведь чтение нужно быстрое, а запись может и подождать, зато данные будут в сохранности). И вообще может выступать полноценным блочным устройством, а не виртуальным огрызком.
Монтироваться куда угодно может и junction в Windows — в любую папку.
Не могу понять, зачем в данной ситуации зеркало. Зеркало нужно, чтобы ускорить чтение, поделив его между двумя дисками. Тут RAM все равно будет быстрее, чем диск. Запись никакая в этом сценарии не нужна.
Лучше всего было бы сделать так: сделать в RAM копию данных и выкинуть ее, когда у нас будет мало памяти. О черт, это называется файловый кеш, он в Windows есть, и если взять версию не десятилетней давности, а какую-нибудь поновее, где он лучше работает, то все будет работать без RAM-диска. Что же получается? Не нужен RAM-диск, не нужен RAID1, не нужен Linux — все работает и так…
Не могу понять, зачем в данной ситуации зеркало. Зеркало нужно, чтобы ускорить чтение, поделив его между двумя дисками. Тут RAM все равно будет быстрее, чем диск. Запись никакая в этом сценарии не нужна.
Лучше всего было бы сделать так: сделать в RAM копию данных и выкинуть ее, когда у нас будет мало памяти. О черт, это называется файловый кеш, он в Windows есть, и если взять версию не десятилетней давности, а какую-нибудь поновее, где он лучше работает, то все будет работать без RAM-диска. Что же получается? Не нужен RAM-диск, не нужен RAID1, не нужен Linux — все работает и так…
Зеркало нужно для того, чтобы данные всегда писались на диск, если изменятся.
И да — файловому кешу нередко сносит башню, так что он здесь совсем не подходит. Например, просмотр фильма тяжелого вполне может выкинуть все файлы системы из памяти.
И да — файловому кешу нередко сносит башню, так что он здесь совсем не подходит. Например, просмотр фильма тяжелого вполне может выкинуть все файлы системы из памяти.
«Зеркало нужно для того, чтобы данные всегда писались на диск, если изменятся.»
Добро пожаловать в мир файлового кеша :))
«Просмотр фильма тяжелого вполне может выкинуть все файлы системы из памяти» — download.microsoft.com/download/8/C/2/8C21BAFE-3432-48D1-962A-F7A9DD54A2AC/Windows%207%20and%20Windows%20Server%202008%20R2%20Kernel%20Changes.pptx слайд №17
Добро пожаловать в мир файлового кеша :))
«Просмотр фильма тяжелого вполне может выкинуть все файлы системы из памяти» — download.microsoft.com/download/8/C/2/8C21BAFE-3432-48D1-962A-F7A9DD54A2AC/Windows%207%20and%20Windows%20Server%202008%20R2%20Kernel%20Changes.pptx слайд №17
не вводите людей в заблуждение, /dev/shm (tmpfs), не является полноценным рамдиском, и запросто может попадать в своп.
настоящий ramdisk это блочное устройство(/dev/ram0, например), созданное из выделенного фрагмента оперативной памяти, которое можно отформатировать в любую желаемую файловую систему.
настоящий ramdisk это блочное устройство(/dev/ram0, например), созданное из выделенного фрагмента оперативной памяти, которое можно отформатировать в любую желаемую файловую систему.
swapiness для кого придуман?
Смешались в кучу люди, кони…
vm.swapiness придуман не для того, чтобы какой-то определенный фрагмент памяти запретить свопить. Он не умеет этого делать. Он указывает system-wide политику свопинга и ничего более.
А дальше действует стандартный своппер, просто его агрессивность и порог срабатывания будут другими.
Можно, конечно, выставить там 0 или вообще сделать swapoff -a (и да, получить гарантию от свопинга), но это не решение (т.к. ненужные данные в своп не попадут тоже, втупую забив память и не позволяя адекватно работать дисковому кэшу в памяти) во-первых и ведет к непредсказуемым глюкам в случае жесткого oom во вторых.
vm.swapiness придуман не для того, чтобы какой-то определенный фрагмент памяти запретить свопить. Он не умеет этого делать. Он указывает system-wide политику свопинга и ничего более.
А дальше действует стандартный своппер, просто его агрессивность и порог срабатывания будут другими.
Можно, конечно, выставить там 0 или вообще сделать swapoff -a (и да, получить гарантию от свопинга), но это не решение (т.к. ненужные данные в своп не попадут тоже, втупую забив память и не позволяя адекватно работать дисковому кэшу в памяти) во-первых и ведет к непредсказуемым глюкам в случае жесткого oom во вторых.
shared memory совсем для другого создан.
Решил бы, но вопрос цены и наличия этого SSD в компьютере. Каждому решению свое место, в данном описанном случае выгрузить в оперативную память часть компонентов — было очень хорошим решением на мой взгляд.
SSD уже дешевле флешек.
UFO just landed and posted this here
Флешки от 2276 рублей , SSD на 60 GB от 2550. При попытке купить адекватную флешку и адекватный SSD — цена одинакова.
Упс, извиняюсь, не ваше, а автора.
Начиная с висты можно было заюзать софтлинки вместо junction.
Ну а насчет нарушения соглашения — строго говоря вы же не вмешиваетесь в работу игры, а вмешиваетесь в работу системы (если править таблицу экспорта или использовать сплайсинг, вместо хука IAT).
То есть модификации идёт в памяти системных библиотек, а не файлов игры.
Ну а насчет нарушения соглашения — строго говоря вы же не вмешиваетесь в работу игры, а вмешиваетесь в работу системы (если править таблицу экспорта или использовать сплайсинг, вместо хука IAT).
То есть модификации идёт в памяти системных библиотек, а не файлов игры.
Там весьма мощное соглашение. Хуки вполне подпали бы под какое-то «изменения алгоритмов работы» и т.д.
Ну я не юрист, но, прочитав здесь, не вижу никаких сложностей.
Краем задевает только пункт 4.4: «не модифицировать Проект».
«Проект — Игра + Пользователи + Модераторы + Администрация.»
«Игра — Программа + Сайт + Контента + Материалы»
«Программа — компоненты программного обеспечения, как отдельные, так и в совокупности, размещенные Администрацией или Разработчиком на Сайте, на сайтах третьих лиц в сети Интернет, DVD дисках и других носителях информации, и специальным образом отмеченные как составные части «World of Tanks».»
Собственно не вижу каким образом какой-нибудь kernel32.dll или ntdll.dll вписывается в эти определения.
Ну и алгоритмов тоже упоминания не встретил.
PS: ерунда у них, а не мощное соглашение, видно что писали по большей части программисты, а не юристы :)
Краем задевает только пункт 4.4: «не модифицировать Проект».
«Проект — Игра + Пользователи + Модераторы + Администрация.»
«Игра — Программа + Сайт + Контента + Материалы»
«Программа — компоненты программного обеспечения, как отдельные, так и в совокупности, размещенные Администрацией или Разработчиком на Сайте, на сайтах третьих лиц в сети Интернет, DVD дисках и других носителях информации, и специальным образом отмеченные как составные части «World of Tanks».»
Собственно не вижу каким образом какой-нибудь kernel32.dll или ntdll.dll вписывается в эти определения.
Ну и алгоритмов тоже упоминания не встретил.
PS: ерунда у них, а не мощное соглашение, видно что писали по большей части программисты, а не юристы :)
Интересно: аудио 200 мб, всего 16 файлов, а грузится дольше всех — 14.48 сек…
tangro, какая у вас ОСь?
Творения Руссиновича, как обычно — лучшие.
Недавно купил SSD и поставил WOT на него. Теперь появляюсь на карте одним из первых, и очень часто самым первым.
Use Windows Vista/7. С таким объемом оперативки кеш винды сделает ровно то же самое на автомате.
Первый раз после запуска игры карта всё равно долго грузится. Но вот потом да, мгновенно.
А вот не делает. Пробовал раз 5 подряд входить в бой — иногда быстрее, а иногда всё-равно время доступа к отдельным папкам очень большое. А в моём способе есть определённый детерминизм.
Не сделает. Точнее, в идеальных условиях свободной памяти и чистого кэша — сделает, да. В реальной работе (с кучей фоновых приложений, в т.ч. работающих с диском) — эффект будет куда менее выражен.
То же самое в обязательном порядке делается с игрой Lineage2) Только там защита блокирует сторонние программы мониторинга (встроенный монитор ресурсов Windows работает отлично). Больше всего в Lineage2 клиент мучает папочку SysTextures, ее я и перенес на рамдрайв) После пробы разных рамдрайвов остановился на Dataram RAMDisk — при загрузке системы монтирует образ, при выключении системы сохраняет образ (для MMO игр это очень актуально, ибо данные постоянно обновляются), а главное нет проблем со спящим режимом)
В общем, нужно использовать современную операционную систему, а не ОС десятилетней давности.
4 Гб вполне годятся, чтобы обновиться до Windows 7.
Это не так и дорого, а все то же самое вы бы получили без RAM-дисков.
4 Гб вполне годятся, чтобы обновиться до Windows 7.
Это не так и дорого, а все то же самое вы бы получили без RAM-дисков.
вообще есть другая идея для ускорения, не жертвуя ОЗУ.
это использование утилитки, которая дает план загрузки файлов (как в этой статье), а дальше использование mydefrag, для создания областей на диске в которых в определенном порядке лежат файлы. Это ускоряет не меньше.
Сейчас и oo defrag чем то подобным распологает, но не так гибко настраиваемо, как в mydefrag.
например есть скрипт для WoW под mydefrag, после этого, вы сразу почуствуете, скорость загрузки WoW(world of warcraft).
это использование утилитки, которая дает план загрузки файлов (как в этой статье), а дальше использование mydefrag, для создания областей на диске в которых в определенном порядке лежат файлы. Это ускоряет не меньше.
Сейчас и oo defrag чем то подобным распологает, но не так гибко настраиваемо, как в mydefrag.
например есть скрипт для WoW под mydefrag, после этого, вы сразу почуствуете, скорость загрузки WoW(world of warcraft).
Если бы вы написали точнее, то был бы крайне признателен.
Тут
скрипт. прогу тоже берешь и в путь.
чтобы придумтраь скрипт, нужно почитать хелп и посмотреть примеры других скриптов.
дляэтого скрипта лучше, когда wow на отдельном разделе диска. так как дефрагментацию надо производить с каким то периодом, и это будет быстрее, чем на смешанных данных.
вообще это скрипт, не только грузит wow быстрее, но и убирает лаги в прорисовке сцен.
скрипт. прогу тоже берешь и в путь.
чтобы придумтраь скрипт, нужно почитать хелп и посмотреть примеры других скриптов.
дляэтого скрипта лучше, когда wow на отдельном разделе диска. так как дефрагментацию надо производить с каким то периодом, и это будет быстрее, чем на смешанных данных.
вообще это скрипт, не только грузит wow быстрее, но и убирает лаги в прорисовке сцен.
Хм, у меня все резво загружается с обычного hdd. А для начала дефрагментировать диск не пробовали. Таким образом, чтобы все файлы в папке лежали в одной куче, а не по всему диску были раскиданы.
Мне для достижения приемлемой скорости загрузки достаточно оказалось поставить винт WD Caviar Black. Хотя исследование, безусловно, интересное.
Какой то геморой… обычно первый загружаюсь и без него. И винт не ссд и инет «гавно». А в общем всё равно ждать придётся всех остальных. А движок кончено у них изначально был старый и то что он до сих пор справляется как раз заслуга не кривых рук программистов.
Хм, у меня стоит Win 7 pro 64-bit, 8Gb оперативки и я загружаюсь быстрее всех, без всяких танцев с бубнами…
У них движок ппц тормозной.
Link Shell Extension — по моему опыту самая удобная утилита с гуем для создания ссылок в win:
schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Хабр торт — спасибо автору за статью!
Офтоп: неужели в WOT(не играл) есть Меркава?
Офтоп: неужели в WOT(не играл) есть Меркава?
Может я что-то упустил, но есть же команда mklink (вроде). Позволяет создавать символические ссылки в windows (с какой версии — не помню). Пользовался ей для таких же целей.
А мне наоборот нравится что танки у меня грузятся секунд 15-25.
А то появляешься первым на карте и сидишь ждёшь остальных.
А то появляешься первым на карте и сидишь ждёшь остальных.
11г весит? Почисти папку с апдейтами и у тех у кого 8г оперативки — все влезет на рам диск
По Alt+F6 в FAR Manager давно умеет «hard links for files, junctions for folders and symbolic links for files and folders»
Нафига такие заморочки?
На форуме игры есть пережатые ресурсы игры. Причем с разной степенью сжатия.
На глаз разницы в качестве графики не заметно, а ускорение не только загрузки, но и ФПС в самой игре поднимает.
На форуме игры есть пережатые ресурсы игры. Причем с разной степенью сжатия.
На глаз разницы в качестве графики не заметно, а ускорение не только загрузки, но и ФПС в самой игре поднимает.
Данные сжаты? Если нет, то может сжать папку с помощью NTFS compression и сделать дефрагментацию?
Ну так ведь все равно приходится ждать столько же времени как и раньше! Разве что поговорить можно до окончания отсчета…
Покупайте SSD и будет вам счастье, у меня секунд за 10 загружается любая карта
Эх… Сначала я купил дорогую видюху, но как оказалось, это не помогло.
Проблему с долгой загрузкой я решил переносом игры на второй винчестер — не знаю всего механизма, но скорость загрузки увеличилась раза в два. Возможно потому что временные файлы на одном винте, а читаются файлы с другого винта.
А вот как решить проблему при игре на ноуте — не знаю. У меня Lenovo y430, c2duo, 2G ram, и там стоит видюха жифорс 9300М. Параметры вроде хорошие, но 10-15 фпсов… Можно ли пофиксить?
п.с. Игровой движок от БигВорлда — ужоснах. Там гигантское количество багов. Что бы его допилить надо гинатское количество кода переписать, и хаков применить.
Проблему с долгой загрузкой я решил переносом игры на второй винчестер — не знаю всего механизма, но скорость загрузки увеличилась раза в два. Возможно потому что временные файлы на одном винте, а читаются файлы с другого винта.
А вот как решить проблему при игре на ноуте — не знаю. У меня Lenovo y430, c2duo, 2G ram, и там стоит видюха жифорс 9300М. Параметры вроде хорошие, но 10-15 фпсов… Можно ли пофиксить?
п.с. Игровой движок от БигВорлда — ужоснах. Там гигантское количество багов. Что бы его допилить надо гинатское количество кода переписать, и хаков применить.
Пожмите ресурсы, очень помогает. На форуме у них есть паки со степенью сжатия 50%, 25% и 12.5%. На не самых лучших настройках разницы не заметите. Заодно и ФПС повысите. Правила, я думаю, это не нарушает, иначе давно закрыли бы эту тему на форуме.
Пожмите ресурсы. На форуме игры есть тема с паками со степенью сжатия 50%, 25% и 12.5%. Ускоряет загрузку и ФПС игры. На не самых лучших настройках разницы не заметите.
На моем Acer Revo R3610 после (да и до тоже не напрягало) урезания текстур стало грузиться в считанные секунды. Правда, все выглядит, как картины Ван Гога и FPS максимум до 12 удалось поднять. Странный дизбаланс — на слабом компе у меня грузится быстрее, а в игре тормозит жутко.
MacBookPro Mid '10, Win 7: загружаюсь первым.
По вашей статистике из директории audio он прочитал чуть меньше 60 мегабайт в 33 файлах за 14.4 секунд. Думаю у вас просто была сильная фрагментация этих данных.
Глянул свой клиент, с перепаковаными текстурами он влезает на 2 ГБ РАМ диск с включенным НТФС сжатием(на распаковку плюем, проца все равно еще несколько ядер простаивающих).
Оставшихся 2х гиг оперативки теоретически хватает для работы игры. На практике проверить не могу, траблы с соединением к серверу.
По крайней мере на запуск клиента дисковых операций 0.3 сек вместо 20+ с винта.
Оставшихся 2х гиг оперативки теоретически хватает для работы игры. На практике проверить не могу, траблы с соединением к серверу.
По крайней мере на запуск клиента дисковых операций 0.3 сек вместо 20+ с винта.
Sign up to leave a comment.
Ускоряем загрузку карты в World of Tanks