DynamicHeapAllocator allocation probe 1 failed - Could not get memory for large allocation 1008124.
DynamicHeapAllocator allocation probe 2 failed - Could not get memory for large allocation 1008124.
DynamicHeapAllocator allocation probe 3 failed - Could not get memory for large allocation 1008124.
DynamicHeapAllocator allocation probe 4 failed - Could not get memory for large allocation 1008124.
DynamicHeapAllocator out of memory - Could not get memory for large allocation 1008124!
Crash!!!
Microsoft Windows Tip:
Close the program to prevent information loss
The computer is out of memory.Save the file and close these programs:
DJ_VR v13.1_PC
According to the log, it is concluded that it flashes back when the LoadAsset interface of AssetBundle is called.
The resource download function is done in the game: the resources are made into AssetBundles and placed in the cloud. When the client runs the game, the AssetBundles are downloaded from the cloud to the local, and then the resources are loaded from the local.
What is the problem with this process?
Suppose we have a resource bundle: test.ab, we put it in the cloud, the client downloads it locally and loads the AssetBundle; then we modify the resources in the project, re-type test.ab and put it in the cloud, the game client If the download of test.ab is triggered without restarting, the test.ab in the local disk will be overwritten, which causes the AssetBundle object previously loaded into the memory to not correspond to the AssetBundle file on the disk. If At this time, calling the LoadAsset interface will cause invalid memory access, resulting in a flashback.
According to the analysis, the solution is to execute LoadAllAssetsAsync to load all Assets after loading the AssetBundle object for the first time, so as to avoid invalid memory access of LoadAsset due to resource overwriting download.