OpenGL will be the lowest level for rendering, so it should provide maximum performance (if everything is done correctly). CoreAnimation will be close enough if there are not so many particles (the exact figure depends on other factors, but up to about 50 should be fine). When you say you're using CoreGraphics, do you mean at the moment that you are redrawing by timer? If so, then CoreAnimation will definitely help you - as long as you can split each particle into a view. You can still use CoreGraphics to render individual particles.
Do you use a physics engine to calculate positions?
source share