Okay, so I finally got around to installing canary and just did an initial test...wow. No random janks and, overall, much smoother performance. Even when the framerate drops, canary seems to be handling it much more gracefully than before. Almost as well as IE. Color me happy <img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":)" title="Smile">
Ashley
OK, well, if you're creating/destroying 100 objects per tick then the CPU overhead of the create/destroy actions comes in to play. These need to do things like update object instance lists, families, containers, initialise the default state, initialise behaviors and so on. Most people don't create hundreds of objects per tick so it's not a significant overhead, but in this case it is measurable. I still don't think it's anything to do with garbage collection. The engine still recycles objects when it creates them, but creating an object just involves more work than re-positioning it. So in this specific kind of use case (you're basically recreating particle effects with sprites) repositioning is cheaper, but this does not prove garbage collection has any involvement at all.
First off: I'm not arguing that this is a bug with construct. Nor is recycling my idea...I got it from you (wish I could find that thread; you advised someone to reposition rain drops instead of destroying them).
However, the discrepency doesn't require 'hundreds of objects per tick' to be created and destroyed. Here's a modification of the DestroyVsMove test that only creates/destroys aprox 20 objects per tick. Jank is still visible, even on IE and Canary.
https://www.dropbox.com/s/glmtne23yud75 ... .capx?dl=0
Your comparison with particles is apt; however, particles can't collide, which is why I use sprites for bullets. The object count in the above test may be high, but the results I'm seeing are courtesy of an Intel i5 3570k. Lower power systems (most pc's/tablets/phones) will have lower thresholds.
tl;dr: If you are creating/destroying more than ~20 objects per tick, recycling may provide much stabler performance.