When performance testing ARC code, remember to test in a release configuration, 
with compiler optimisations on. In my experience, it can really make a big 
difference; a lot of 'spurious' retain/release pairs are optimised away, and 
many objects are released earlier.

Jamie.

On 9 Sep 2013, at 11:15, Kevin Meaney <k...@yvs.eu.com> wrote:

> 
> On 9 Sep 2013, at 10:33, Tom Davie <tom.da...@gmail.com> wrote:
>> 
>> Yes, it does.  If you’d like an example to verify this behaviour with, play 
>> with converting https://github.com/beelsebob/CoreParse to ARC, and profiling 
>> the result.  This is the example that showed 100% slowdown initially.  The 
>> last time I tried this with with Xcode 4.5, and after I’d added a bunch of 
>> extra autorelease pools all over the place which reduced ARC’s overhead to 
>> “only" 50%.  This in itself suggests to me that ARC causes a significant 
>> increase in the number of autoreleased objects (which surprised me given the 
>> runtime optimisation to get rid of autorelease/retain pairs in 
>> callee/caller).
> 
> One of the things that has changed in the code that I write, is that in 
> manual retain/release I would often use the autorelease class methods for 
> creating an object arrayWith... etc. and think about the placement of 
> autorelease pools. Using ARC I almost never use these class methods for 
> creating an object but instead use alloc init. I don't have a lot of 
> temporary objects hanging around now.
> 
> My new project is still so far from ready that optimizing at this point is 
> not sensible. I do have however a bunch of utility functions that do a lot 
> and currently use cocoa for doing the work but that nearly all the cocoa can 
> be replaced by their toll free bridged core foundation equivalents. So if 
> measurement proves that a lot of time is spent in these methods I'll rewrite 
> them then.
> 
> Kevin
> 
> 
> _______________________________________________
> 
> 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/jamie%40montgomerie.net
> 
> This email sent to ja...@montgomerie.net


_______________________________________________

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