-
Originally posted by Grom44
Цитата:
Что значит "зависание"?
Счасливчик - он не знает, что такое зависает 
Подлетаю к кораблю. Атакую - даю один залп, тут-же второй. Пролетаю над кораблём. И всё картинка зависла, тоесть не меняется ничего, как фотография. Звук идёт нормально. И самолёт в это время летит, только я нифига ни вижу и управлять не могу. Когда прорыгнуло - самолёт (неуправляемый) врезался в землю.
Спорим, у тебя при этом винт трещит как сумасшедший?
Как справедливо поправился Hishnick, это т.н.з "фриз", являющийся, причиной лага (когда тебя "отфризит" ты варпанешь на чужом компе), но не им самим.
Увы, я хорошо знаю что такое фриз.
Возникает он когда Ил, вместо апдейта катринки и ФМ занят чем-то другим.
Мелкие фризы возникают, когда происходит какое-нибудь значимое сетевое событие. Например, кто-то присоединяется, и Ил должен порадить новый самолет (загрузить его модель, закачать оригинальную шкуру и т.д.).
Жуткие фризы (до десятков секунд) происходят когда у Ила кончается память, и он вызывает сборщик мусора.
Т.к. жабная программа не освобождает временную память (просто не может этого сделать), то накапливаются десятки (а при длительном игровом процессе сотни) мегабайт, которые, вседствие никому не нужности уже давно не используются и лежат высвопленными на винте. И вот этот сборщик мусора начинает ворошить (подгружать из свопа) всу эту память на предмет ее освобождения. Т.к. память физически кончилась (иначе, зачем было что-то высвапливать?), то для своих манипуляций он требует еще памяти, высвапливая что-нибудь, на этот раз нужное, но не ему, а Ил2. Этот процесс называется "трэшингом". Наконец, после того как сборщик мусора освободил весь найденный мусор, он отдает управление Ил2, отхватив еще кусочек памяти, дабы его дергали в следующий раз попоздже. Но и мусора в следующий раз накопится побольше.
Теперь Ил2 уже может что-то делать, но вот, блин, опаньки, сборщик мусора высвопил на диск нужную ему информацию. Система возвращает эту память на место, что тоже занимает какое-то время.
Со стороны это выглядит так: картинка стоит, винт трещит, а звуковуха продолжает играть то что ей сказано: гудеть движком и трещать пулеметом. Похоже?
Бороться с фризами на жаве сложно. Но можно контролировать их появление. Но этим должны заниматься разработчики.
Пользователь может только извращаться.
Например, уменьшать размер пожираемой Илом памяти, оттягивая тем самым наступление очередного фриза.
Уменьшать размер пожираемой памяти можно, главным образом, уменьшив размер текстур. Можно уменьшить (в 4 раза) разрешение текстур самолетов, поставив в conf.ini
TexLarge=0
Можно уменьшить разрешение текстур ландшафта, поставив
TexLandLarge=0
(я делаю так)
Можно уменьшить разрешение текстур, используемых для отрисовки:
TexLandQual=2
или даже
TexLandQual=1
Но я не уверен, что он их не станет подгружать вообще. Думаю, что он их будет просто реже использовать.
А можно уменьшить в 4 раза объем всех текстур, включив их компрессию (S3TC).
При этом, как бы разрешение у них будет то же, но размер- в 4 раза меньше. Разумеется, без потерь качества не обойтись- резкие переходы (16 битный цвет, если не настроить драйвер в случае с nVidia) и искаженные цвета приводят к тому, что на воду смотреть становится просто невозможно. Но на медленных видеокарточках, тем более требовательных к пропускной способности памяти (GF2MX, GF4MX) это делать просто необходимо, ИМХО.
Чтобы уменьшить количество фризов полезно бывает до взлета попереключать внешние виды, если они есть.
Со стороны сервера, подобным действием является расстановка на карте стат. моделей всей используемой техники.
Вот такие наблюдения.
Да, вывод такой- Геннадич в этом не виноват. В этом виновата клиентская часть Ил2, то есть вы сами.
Крайний раз редактировалось deCore; 04.10.2003 в 17:21.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума