- Home /
Unused Components - Are these a memory concern?
I'm building an app for iOS.
It's therefore essential that I watch the app's memory consumption.
I just added a new camera to the scene, allowing the user to switch between the two.
For the second camera, there's no GUI, or Flares. A stock camera comes prepackaged with a GUILayer component and a Flare Layer component.
Should I look out for these unused components and remove them as necessary, or do they not impact the memory consumption?
Answer by Kiloblargh · May 24, 2012 at 11:33 AM
No, but unused components are bad feng shui. Remove them so as to give your project better energy flow.
Lovely answer but I couldn't tell if people voted up the answer or the joke. I've been removing unused components but I've been asking myself this question quite often, a confirmation would be appreciated. :D
No, if the component can be disabled (not everyone can) there is no performance overhead. A Rigidbody, when it's not needed it can be set to kinematic so it isn't influenced by other physics objects.
Object pool can be used for any kind of gameobject. But they should only be used when you actually need more than one of these objects and if you need to add / remove them frequently.
When you deactivate a gameobject all attached components are also inactive.
If you adding and removing components very often has the same effect as intantiating and destroying. Components are also object instances which have to be collected by the garbage collector.
If a script of component isn't needed at all, don't attach it ;) If it might be used in some situations, just disable it and enable it when needed.
So if I had 200 components on my Game Object, but only used a single one (obviously a hypothetical question), the other 199 were disabled, or simply just doing nothing (such as the GUI Layer without a GUI), there would be no performance difference between it and another Game Object that only had one component on there?
The difference would be neglectable small. I think a component lookup(GetComponent()) might take a little bit longer if you have many components on one GO, but the instantiate / destroy hiccup will be much worse ;)
Your answer
Follow this Question
Related Questions
"stream from disc" WAV/AIFF file allocates tons of memory 0 Answers
Memory Allocation Continues to Grow? iOS. 4.6.3 0 Answers
iOS VideoPlayer doesn't unload temp RenderTexture in 2019 0 Answers
AudioManager memory usage on iOS when using Asset Bundles 3 Answers
Phone App(not game) : should I load UI panels as assets or load it as new scene? 0 Answers