Поскольку он не управляет памятью, куча Unity WebGL всегда вылетает?

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

См. это изображение

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

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

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

Я правильно понимаю это?


person Ammar Aslam    schedule 14.03.2019    source источник
comment
Я также работаю над unity-webgl, но я не нашел подходящего способа освободить память. Возможно, вы найдете это полезным stackoverflow.com/questions/55102548/   -  person Muhammad Faizan Khan    schedule 18.03.2019