If you have lots of items, then aggregated delay will be significant. Creating and deleting items in paint() is simply broken by design. If you want to find bottlenecks in your application, run it through a profiler. Also if you add an item during paint(), the scene index will have to be recalculated and then paint() will probably be called again if your new item intersects with the group item. So instead of speedup, you get a slowdown.