To instantiate or not to instantiate

I have alot of different screens that are represented by sprite collections. I also have a rather long load time. so far I have been working with the notion that I should have all the important screens ready in my game-state in order to avoid instantiate. But should I be worried about instantiating?

Instantiation does take time, so doing it on the fly can result in noticeable hiccups sometimes/usually. However, the drawback is memory consumption, since those instantiated objects will consume memory (the objects themselves aren’t really the issue, it’s the textures and other big assets that is). So if you are dying for more memory, you may make matters worse; however, you never really know what your real memory consumption is unless you have everything instantiated that could be instantiated in your scenes (otherwise you’ll end up with random crashing, which almost always is memory related once you go into production).

So, at the end of the day the best path in my opinion is to instantiate your objects ahead of time. That way you always know your true memory limits and you won’t cause hiccups during gameplay. It will result in slower level load times, though. Always trade offs!