Форум PentaCraft

Разбор видов "тормозов".Выделение памяти клиенту

Доброго дня/вечера/утра/ночи всем читающим это.
Очень часто в чате появляются вопросы, мол: “какого лешего у меня лагает, серв - калькулятор, отписываюсь, снимаю лайки” и сходного с этим содержания. Однако далеко не всегда эта проблема связана с серверной частью/коннектом. Сейчас я попробую помочь вам разобраться с зависаниями и определить их причину.
Итак, что же нам требуется, если игра начала подвисать.
Самое первое и важное тут, как и в медицине - диагностика.
Начнем с того, что классифицируют обычно 2 вида “торможения” - фризы и лаги.
Фризы - замирание картинки, проседание фпс до 0. То есть если ваша игра напоминает слайдшоу или старую диораму(эх, ностальгия) - у вас наблюдаются именно фризы и просадка фпс, а не лаги. С чем связано: обычно с древними видеокартами на 64килобайта и оперативной памятью. Первое лечится по-хорошему только заменой видеокарты(возможен так же вариант, что запущены конфликтующие программы, у меня например с одной из игр никак не хотел по-нормальному работать Overwolf.Конфликтующие программы обычно задействуют overlay - т.е отображаются поверх других окон, так что в первую очередь стоит позакрывать их.Вторая причина - драйвера времен царя Гороха. Nvidia Xperience и ей подобные вам в помощь) и в основном зависит именно от железки внутри вашего пеки, а вот второе может проявиться и при наличии тонны оперативки из-за проблем с выделения памятью яве. О диагностике и лечении этой проблемы - чуть позже.

Лаг - задержка в работе компьютерного приложения, когда оно не реагирует на пользовательский ввод вовремя.(определение с вики). Причиной лагов является обычно скверное соединение либо проблемы со стороны сервера. В первом случае может помочь смена провайдера или терпение(провайдеры любят тех.работы), во втором - только терпение и капанье на мозги админу(ам). Вообще это проверяется пингованием до сервера, но так как руководство это рассчитано на юзверей уровня ниже среднего - используйте обычные интернет тестеры, показывающие скорость типа speedtest.net . Главное помнить, что такие сайты обладают большой неточностью, но суть они вам покажут. Т.е если пинг ниже 150(майнкрафт - не MOBA, тут и 200 - нормально) и не наблюдается потери пакетов - то скорее всего в этом замешан сервер. Лично я проверяю скорость через teamspeak, просто тыкая в connection info. Главное понять - виноват ли наш интернет?Стоит ли уже начинать писать провайдеру трехстраничные матерные письма?

Как же проявляются лаги и фризы?
Лаги - уже срубленные блоки появляются заново и чуть позже опять исчезают. Интерфейс всяких МЭ и верстаков открывается после тысячи нажатий пкм, а персонаж вхолостую машет рукой. Сообщения в чате появляются с громадной задержкой, команды активируются не сразу.
Фризы - Такое чувство, как будто ваш персонаж вмерз в лед. Картинка покадровая, все дергается, в общем ужас.
Так как в борьбе с лагами я вам не помощник - перейдем сразу к теме фризов.

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

Вторая цифирь - число выделенной памяти. Находится в правом верхнем углу. Так как у меня почти весь верх справа занят радаром - выделю только эту строчку.

Как мы видим - выделено слишком мало оперативной памяти, из-за чего наблюдаются фризы. При этом если бы проблема была в видеокарте - фпс был бы маленьким, равно как и процентное соотношение используемой памяти к выделенной(на скриншоте - 91%).
Что же делать дальше, если мы выяснили, что на клиент выделено слишком мало оперативной памяти, а свободной у нас еще воз и маленькая тележка?
Для начала пойдем от простого и попробуем сделать через лаунчер.

Тут все очень просто, жмякаем кнопку “настройки”(имеет вид шестеренки и находится в лаунчере справа снизу. На всякий случай выделил её красным квадратиком) и выкручиваем ползунок вправо до упора. Получается как-то так:

Сработало?Молодцы, закрываем тему и идем играть.

Не сработало?Попробуем настройку через панель.
Открываем панель управления, находим там java, открываем, находим там вкладку java, открываем вкладку, жмем view и смотрим на появившееся окошко.

Нас интересует столбик Runtime parameters. Именно там прописывается выделяемое яве кол-во памяти. В моем случае - 4096мб. Выставляйте там нужное значение сами, вставляя туда: -Xmxкол-во оперативной памяти в мегабайтахm. Для 32-битных систем максимум - 1028 мегабайт, т.е -Xmx1028m, у 64-битных - не проверял, но 4гб хватит за глаза и за уши. Жмете Ok и apply и перезагружаете комп(для надежности. А то эта java…)

Помогло?Закрываете тему и идете в игру. Не помогло? Быть того не может, но в общем то есть и третий метод. К счастью моему, прибегать к методу нумер 3 мне не приходилось ни разу, но если кому-либо не помогут предыдущие 2 - опишу и третий.Просто напишите в комментариях, что мол нужен 3 метод.

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

7 Симпатий