- Home /
Can low memory in the target device (Oculus GO) affect my game performance?
I'm working on static and dynamic batching in unity. In my Oculus Go, I only have 2G free memory. Despite the optimization, I noticed a low performance in my game. Can low memory in my Go, affect my build performance?
Thanks! Valerio.
By "build" performance do you mean, the time it takes to make the build, or do you mean the performance of the builded package ?
Btw, low memory will always impact performances. 2GB free is comfortable, but we don't know you application, maybe you are doing some nasty things which sucks the 2GB the frees it very quickly. Use Unity Profiler to get analytics on you performances (https://docs.unity3d.com/$$anonymous$$anual/Profiler.html)
Hello @$$anonymous$$outon , by 'build' I mean the performance of the builded package. $$anonymous$$oreover, I noticed a loss of performance also in other games inside my Oculus Go. So, from here my suspicion... Btw, Thanks for your advice!
Whenever the memory on the device gets low, there are multiple mechanism that will try to release some memory to free some memory for the applications running on the system. Of these mechanism, the first one is the C# Garbage collector which will release memory when a threshold has been reached, this mechanism is run from your application. The second mechanism is the system virtual/extended memory/SWAP which will write exceeding memory to file once it reaches almost the maximum capacity of the device. If there is no virtual memory, the system will randomly kill processes. Beware the leaks !
Answer by Mouton · Sep 28, 2019 at 01:44 AM
Low memory have an impact on performances. Since we don't know your application we can't tell because memory usage can be tied to a lot of things (scripts, textures, models, and much more...). The Unity Profiler (https://docs.unity3d.com/Manual/Profiler.html) tool can help you track memory usage of your application.
You have to be aware that when the memory on the device gets low, there are multiple mechanisms that will try to release some. Of these mechanism, the first one is the C# Garbage collector which will release memory when a threshold has been reached, this mechanism is run from your application. The second mechanism is the system virtual/extended memory/SWAP which will write exceeding memory to file once it reaches almost the maximum capacity of the device. If there is no virtual memory, the system will randomly kill processes. Another noticeable mechanism is memory compression that some systems may try to achieve. All of this mechanism will use the CPU and slows the available resources for you application. Beware the leaks !