Поскольку он не управляет памятью, куча Unity WebGL всегда приводит к сбою? - PullRequest
1 голос
/ 14 марта 2019

Unity упоминает в своем руководстве, что пакеты ресурсов загружаются в кучу памяти Unity WebGL. Они также упоминают в своем блоге , что динамический объем памяти в куче не управляется (уплотняется), поэтому может произойти фрагментация:

See this image

Изображение из официального блога Unity и показывает зеленые блоки фрагментированной кучи памяти.

Таким образом, если мы загружаем пакет ресурсов, скажем, 100 МБ в кучу, а затем выгружаем его, то эти 100 МБ окажутся фрагментированными, то есть не будут добавлены в свободные блоки памяти.

Теперь, если у нас есть N пакетов размером M, каждая загрузка и выгрузка может создать фрагментированный блок, и это приведет к тому, что Unity потребуется все больше и больше блоков из свободной памяти кучи. В конечном счете, в какой-то момент свободная память кучи завершится, и, хотя фрагментированного свободного места много, Unity не сможет его использовать, и приложение вылетит.

Правильно ли мое понимание этого?

...