Should you instantiate new particle systems or keep them active inside gameobjects?

Scenario: my players plane has many guns and when they fire they will each activate their own particle systems. Should I have these particle systems always under the gun gameobject ready to start or should I instantiate a new particle system when I need one (in code)… which is better for performance?

Definitely latter, not to mention that ParticleSystem.Stop() by default doesn’t kill emitted particles. Sadly the reason instantiation is often avoided because Unity may fail to free the memory even after the object is destroyed.

Thank you for the answer and insight @ifurkend, I will test it in practice.