Post as information and a memorandum for myself.
I did quick test for this with my dev. environment.
Cocos creator v1.7.2,
MacBook Pro (Retina, 13-inch, Late 2013) , 2.4 GHz Intel Core i5, 8 GB 1600 MHz DDR3 memories.
Google Chrome 63.0.3239.132 (Official Build) 64bit. Canvas draw.
A. No running process.
B. Made 1000 nodes + cc.Sprite with simple sprite-frame with no parent. (nothing draw on screen)
C. Set parent with B.
D. Remove 1000 nodes ( removeFromParent(true) ) and
create 1000 nodes per second (new cc.Node + addComponent(cc.Sprite) with C.
E. Remove/ create 15000 nodes with D.
30 fps. It seems garbage correction running each few second.
F. Object Pool 1000 per second.
Remove 1000 nodes ( removeFromParent(false) ) and
re-assign 1000 nodes per second with C. (set parent, setPosition and set spriteFrame)
G. Object Pool 15000 per second.
Remove and re-assign 15000 nodes per second with F.
60 fps. It seems garbage correction is not running.
My conclusion is,
Object pool is certainly faster than remove/ create, but remove/ create is not so slow than I thought. Difficult to see big difference between object pool with 1000 remove/ create per second.
Don’t need more than 1000 remove/ create 1000 objects/second at normal use at game. But object pool can provide sprite reuse without almost no cost.