Перейти к содержимому
RU
Играть

Форум

HTML5: Решето!


Fizzika

Рекомендованные сообщения

В 17.09.2020 в 23:22, Niced сказал:

Игра, судя по всему, вообще мало что освобождает.

всё оказалось хуже, чем мы думали. у них вся игра и весь код построен на объектах, то есть каждая сущность в игре (лобби/карта/танк/модуль/баланс в кристаллах и т.д.) описана объектом с определенными свойствами. так вот каждый раз, когда нужно изменить какое-либо чиселко в одном из этих объектов (ну там танчик сдвинулся например), они создают новый экземпляр этого объекта с обновленным нужным свойством. старый же при этом остается в памяти и никуда оттуда не уходит


нужно изменить кол-во кристаллов на балансе акка? - создавай новый экземпляр лобби

нужно изменить позицию танка? - создавай новый танк

кто-то написал новое сообщение в чатик? - создавай новый чатик

 

и почти каждую секунду у них штампуются сотни дубликатов всех их объектов. короче, это диагноз.

 

P.S. а функция очистки ресурсов у них вообще феноменальная:

Скрытый текст

glcontext.prototype.dispose = function() {
      this.disposed_0 = !0
}

 

  • Хаха 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  • Ответы 120
  • Создано
  • Последний ответ

Топовые авторы в этой теме

3 минуты назад, Power.Bank сказал:

они создают новый экземпляр этого объекта с обновленным нужным свойством. старый же при этом остается в памяти и никуда оттуда не уходит

Должен же сборщик мусора работать, если ссылка на объект пропадает. Но там вроде многое на пулах, чтобы лишний раз GC не нагружать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скоро выйдет видеокарта с больше 30 Гб видеопамятью, так что проблема памятью в клиенте можно не решать, пока заполнишь память уже надоест играть :D .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

On 9/20/2020 at 10:52 AM, Power.Bank said:

у них вся игра и весь код построен на объектах, то есть каждая сущность в игре (лобби/карта/танк/модуль/баланс в кристаллах и т.д.) описана объектом с определенными свойствами

Ну у них же вроде клиент написан на котлине, который транслируется в джс, то есть наличие кучи объектов вполне себе естественно и предсказуемо

 

On 9/20/2020 at 10:52 AM, Power.Bank said:

они создают новый экземпляр этого объекта с обновленным нужным свойством. старый же при этом остается в памяти и никуда оттуда не уходит 

Это вполне себе нормальная концепция в каком-нибудь react js, когда все сущности иммутабельные и при изменениях нужно создавать новые. Старые же чистятся GC.

Оптимизация же происходит за счёт того, что реакт поддерживает в памяти своё дерево объектов (vdom) и на странице ререндерятся только те блоки, которые поменялись.

 

Я слышал, что по крайней мере лобби в ТОшке написано на реакте, ну или на чём-то, что использует похожий принцип.

 

On 9/20/2020 at 10:52 AM, Power.Bank said:

нужно изменить позицию танка? - создавай новый танк 

А ты уверен, что код, не относящийся к рендеру dom-дерева, вот так работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 18.09.2020 в 14:33, Fizzika сказал:

У тех, у кого мало видеопамяти, тошка кушает оперативку (ну вот как у меня с 2гб ноутбучной затычкой)

Выяснилось, что Chrome в принципе не способен использовать оперативку при переполнении видеопамяти (сразу критует), а скачиваемый клиент и Firefox (и Хромиум на Линуксе, вероятно) - могут, и сначала они выжирают всю видеопамять, затем оперативку. К сглаживаю это не имеет отношения, оно только усугубляет проблему с утечкой контекстов, ибо пока существует контекст, существуют и буферы для сглаживания. Остальные ресурсы успешно освобождаются браузером, когда он сочтет нужным (например, при переключении вкладки). Отсюда такое разное поведение игры у разных пользователей, которое всех нас запутало. Слишком много переменных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 minute ago, Niced said:

А это что?

Ну с тех пор я сменил браузер, так как после очередного обновления рача в хромиуме пропало ускорение в webgl

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Только что, Fizzika сказал:

Ну с тех пор я сменил браузер, так как после очередного обновления рача в хромиуме пропало ускорение в webgl

И в Хроме оно тоже задействует оперативку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Just now, Niced said:

И в Хроме оно тоже задействует оперативку?

Да, причём как с твоим фиксом, так и без него

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Только что, Fizzika сказал:

Да, причём как с твоим фиксом, так и без него

Значит, еще и зависимость от ОС. У меня Хром не лезет в оперативку ни на Винде, ни на Убунту (вроде). А скачиваемый клиент (тот же движок) - успешно лезет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

9 часов назад, HACTEHKA_KX сказал:

Таки серый экран теперь появляется раз в 8-9 битв, даже в те моменты когда и оперативной, и видеопамяти хватает
Верните как было)
 

Скрытый текст

1ptA9AAxroQ.jpg

 

Here we go again! Можно график видеопамяти? Вход-выход из лобби в гараж критует? Это в Хроме или в клиенте? В другом месте как? А логи в консоли смотрела, когда появляется серый экран? Так, это для начала. :heh:

 

Пока вангуется, что это какая-то совсем другая проблема.

 

Изменено пользователем Niced

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Удалось наконец-то еще раз ошибочку получить

В 27.09.2020 в 07:10, Niced сказал:

Можно график видеопамяти? Вход-выход из лобби в гараж критует? Это в Хроме или в клиенте? В другом месте как? А логи в консоли смотрела

Проблема все та же - нехватка памяти. Появилась при выходе из N-ой битвы в лобби
Логи из хрома:
vOGKqam.jpg

Оперативка, ошибка появилась еще при ровной линии, а падает уже после перезагрузки странички:
x2UkjGP.jpg

Видеопамять, ровная прямая во время ошибки (хотя раньше когда серый экран появлялся всегда провал был), а после уже перезагрузка:

AuUC8DX.jpg

 

Вход-выход не критует. Раньше оперативная использовалась по-максимуму, все 7.8 гб, сейчас и сообщением выше крит на 1 гб меньше случился

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, HACTEHKA_KX сказал:

 

Так оперативки впритык - Peak доходит до 8 271 832 из 8 278 376, а файл подкачки отключен. Вероятно, поэтому и критует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Niced сказал:

Peak доходит до 8 271 832

Ну так peak это максимальное значение графика за все время работы ОС
При тестах вот оно и доходило до притыка, как следствие были криты:

Скрытый текст

5KKKxBA.jpg

 

После недавнего обновления оно уже туда не доходит (не, ну может я просто не заметила, во всяком случае на графиках этого не видно)

Изменено пользователем HACTEHKA_KX

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 минут назад, Giskard сказал:

очень быстрого заполнения памяти

Если брать, например, только что включенную винду и 8гб оперативки, 2 из которых съедает винда, а потом просто играть серии ММ битв, то каждая связка карта-лобби съедала бы по ~500мб при минимальных настройках графики (до фикса)
И при свободных 6гб в системе проиграть можно было бы около часа - не слишком быстро, да

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

28 минут назад, HACTEHKA_KX сказал:

Ну так peak это максимальное значение графика за все время работы ОС

Т. е. с того момента компьютер не перезагружался?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Giskard сказал:

Потребление памяти росло, но медленно.

Тогда это к Serene, у нее вообще критов не бывает

1 час назад, Niced сказал:

Т. е. с того момента компьютер не перезагружался?

Странный вопрос :)
С момента получения такого peak - нет, не перезагружался, разумеется. Иначе бы и числа такого не было
Были ли танчики причиной получения такого значения? - нет, не были. Танки - не вся жизнь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

7 минут назад, HACTEHKA_KX сказал:

Странный вопрос :)

Пожалуй, да.

 

Нехватка памяти с выключенным файлом подкачки - в любом случае плохо. И пока это основная версия, почему игра выдает такую ошибку, ибо других "узких мест" я не наблюдаю. У меня такой проблемы нет, у Serene тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 минут назад, HACTEHKA_KX сказал:

нехватка памяти?

Ну да, так себе версия, но другие - еще хуже. :D OUT_OF_MEMORY вообще сложно понять иначе. Можно попробовать побольше оставить свободной памяти или включить файл подкачки и поиграть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×
×
  • Создать...