CC v2.21 - Performance issues!

I am shocked !

Because i read the diagram sheets of the new CC v.2.21 and they pointed out got a big performance-increase to prior versions. Sadly this is not the case, so i can´t believe these diagrams. I simply done some tests by this examples: https://github.com/cocos-creator/performance-tests

And in comparison to the prior version (CC v2.11) it was much slower on my Android. Please confirm this by doing the same test. You can only recognize this issue, when testing on a weak Android phone. Don´t use a flagship-phone. This absolutely does not make sense, for performance-testings.

So CC 2.11 is much much faster than CC 2.21 . I can´t believe it. I hope its only a bug. Beside that, v2.21 has this problems:

  • 2mb bigger *. APK (3mb bigger “lib\armeabi-v7a\libcocos2djs.so”)
  • Text “cache mode”: CHAR doensnt work
  • incompatibility with your older projects

Please dear CC-devs. Investigate into this. Its important for all of us. Thx.

Did you create objects/nodes on fly?

Starting from 2.2.0, they have changed memory management to be manual. So, you got to clear objects manually.

If your codes did not manage dynamic objects well, there could be performance impact due to memory leaks.

Thx for respond.

I would say, i created objects / nodes via editor. Not via script. I used a simple scene (flappy bird clone) to test some stuff out in CC 2.2x. And i made a “pool” of my objects. So i don´t load / relaod them, just simply hide / show or reposition their origin position. Thiy way, i don´t have any trouble through memory. Or did you mean something else ? Maybe you can give a Link / hint whats meant by “managing dynamic objects well”.

To be honest, I’m still using 2.1.x. So, I do not have first-hand experiences with 2.2.x.
Nonetheless, the official guide says:

Starting with 2.2, we have enhanced the memory management mechanism. Now the cc.Nodethat is dynamically created by the code and independent of the scene node tree must be released by destroy(), otherwise the engine doesn’t know when to recycle such nodes. In addition, nodes that are manually removed from the scene need to unify destroy when they are not needed. If the node is managed via cc.NodePool, it is not affected.

// Suppose testNode is a node in the scene, if it was manually removed from the scene, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again later, there is no need to manually destroy the node.
// Otherwise it should be called manually
testNode.destroy();

Okay. Thx for the info. Currently it seems, that CC v2.1x is more relieable. Also in terms of performance. Anyway, i will watch the further development in CC. As for my lil project, i don´t use any “*:destroy();” command, or one of the other 2x commands. Therefore i think its not affected by this new memory management in my case.