well i also had these problems so the solution is to load all your stuff in a resource manager and pre-cache your emmitters
a related post to this you can find here: viewtopic.php?f=3&t=4420
at the end this was the solution:
ok perfect, so now i've tweaked the particlesystem "system" to my own needs, i preload the particles and refer from the system to my images "in memory" so i don't have the resourceloader to load them each time (because i need to use a lot of single effects) so the particles go up in memory, are released with the images and after a gc i'm on my initial state (lets say it starts at 20 > goes up to 70 mb and goes back down to 20 mb) which is perfect !
and my byte doesn't go berzerk
thank you guys !
so finally i use a stripped version of the particlesystem that load their particles from the config class which has them in memory, also the parsed xml documens so i can refer back to them if i need to re-create a system, otherwise you could use the duplicate method but then you should concider to do a deep copy of your particle system with all objects related to them but i prefer to create a clean system each time then resetting it
result, the byte array is very small + everything is garbage collected afterwards, now it runs in 50 mb of memory at 340 frames on the highest load
again tx for your support to give me a lead where to search!