The manual articles : Best practices
and performance tips
as well as this blog article about optimisation
should be worth reading. (I recommend to actually read the whole manual at least once for anything C2 related)
To help you though, it would be better if you would post the capx of your project, so we can check the code directly.
Hard to say anything otherwise.
Possibly as you say, loops creating objects when it shouldn't, but no code, no way to tell for sure.
As far as memory leak goes it is unlikely, I've tried your project, and when I shut it down, I got back the same amount of RAM I had before launching it.