Unity在其手册中提到资产捆绑包已加载到Unity WebGL内存堆中。他们还在他们的blog中提到,堆中的动态内存大小没有得到管理(压缩),因此可能发生碎片:
图片来自Unity官方博客,其中显示了碎片堆内存的绿色块。
因此,如果我们在堆中加载一个100mb的资产束,然后将其卸载,则该100mb最终将成为碎片块,即未添加到可用内存块中。
现在,如果我们有N个M大小的捆绑包,则每次加载和卸载可能会创建一个碎片块,这将导致Unity从可用堆内存中获取越来越多的块。 最终,可用堆内存将在某一时刻完成,即使有很多零散的可用空间,Unity也将无法使用它,并且应用程序将崩溃。
我对此理解是否正确?