Pool in effect, screenshot from Unity inspector
Instantiation in Unity sucks. It costs valuable frames to generate a new gameobject and then to have it just be destroyed a few minutes or even seconds later, and on mobile? Sucks.

What you want is a Game Object Pool. I found a very nice one on GitHub, called Advanced Pooling System, and I edited the Space Shooter demo project to use this instead of Instantiate/Destroy. I really liked this because all you have to do is send the prefabs name, and if you want, a position and rotation. The pool also expands if there are not enough gameobjects on startup.

Game Object Pool in action

Space Shooter Project Folder (Made in Unity 5.3.2). I use the new Unity UI and the Scene Manager.