On 28/03/2012, at 6:36 PM, Kenneth Baxter wrote:
> I am trying out some different ideas for animating portions of a view, but am 
> having problems with performance. 

On current hardware, the main bottlenecks in the drawing pipeline are two spots:

1) The CPU, i.e. drawing stuff using Quartz calls.
2) Transfer between RAM and GPU (graphics card) memory.

#1 is the classic, intuitive bottleneck that is usually solved by only drawing 
what you have to. Quartz is fast at what it does, but it does a lot (sub-pixel 
anti-aliasing etc.), so if you can avoid drawing at all, that's still better 
than drawing with really fast Quartz calls. (Graham Cox gave you great 
directions how to optimize that)

#2 arrived with GPU-accelerated graphics (Quartz Extreme), and usually means 
that whenever you draw in a view in a window, the whole layer's pixels need to 
be re-uploaded from the CPU/RAM where your drawing code happened to the 
graphics card. By default, each window gets its own layer. If you find yourself 
updating small subsections of a window, it is therefore often a good idea to 
turn on layer-backed views (CALayer/CGLayer), so only the pixels for that 
frequently-changing view are updated.

Moreover, moving a layer is inexpensive, because all it has to do is upload a 
single point to the graphics card telling it where to move the layer to. The 
pixel data stays identical. So if you're moving stuff around that otherwise 
doesn't change, the fastest way is generally to put that in its own layer (or, 
if you must, layer-backed view).

Cheers,
-- Uli Kusterer
"The Witnesses of TeachText are everywhere..."
http://www.masters-of-the-void.com



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to