Le 9 sept. 2013 à 11:33, Tom Davie <tom.da...@gmail.com> a écrit :

> 
> On 9 Sep 2013, at 10:18, Jean-Daniel Dupas <devli...@shadowlab.org> wrote:
> 
>> 
>> Le 9 sept. 2013 à 09:58, Tom Davie <tom.da...@gmail.com> a écrit :
>> 
>>> 
>>> On 9 Sep 2013, at 09:44, Kyle Sluder <k...@ksluder.com> wrote:
>>> 
>>>> Thirded. I thought I wouldn't like it. As soon as I didn't have to manage 
>>>> retains and releases of temporary objects, the discipline completely left 
>>>> my mind. Now whenever I go back to non-ARC code I invariably make a ton of 
>>>> memory management errors, most of which are caught by the analyzer.
>>>> 
>>>> --Kyle Sluder
>>>> 
>>>> On Sep 8, 2013, at 11:18 PM, Alex Kac <a...@webis.net> wrote:
>>>> 
>>>>> Bingo. We’ve been working with Cocoa/Obj-C for many years, and still we’d 
>>>>> find weird errors that would be caused by some over-released object. We 
>>>>> cut a ton of code with ARC, and in the end we saw reliability go up and 
>>>>> actually even some performance.
>>>>> 
>>>>> ARC is a win. The only place it really got a bit hairy was CF objects. I 
>>>>> wish ARC would work with them a bit more.
>>>>> 
>>>>> On September 8, 2013 at 11:56:10 PM, Jens Alfke (j...@mooseyard.com) 
>>>>> wrote:
>>>>> 
>>>>> They’re a _lot_ easier. It might not look that way when you’re reading 
>>>>> about all the details, or converting existing code, because then you’re 
>>>>> focusing on the rare edge cases. But for the most part when actually 
>>>>> coding you can simply ignore ref-counting. Your code becomes more compact 
>>>>> and readable, and you’re less likely to make mistakes.
>>> 
>>> I *completely* agree with you with regards to memory management being hard 
>>> to get reliably right (not hard to get right, hard to get reliably right), 
>>> and weird errors all the time caused by memory management going wrong.  ARC 
>>> is a major boon in this regard.
>>> 
>>> However, I have to say, I have had the complete opposite experience with 
>>> regards to performance.  Having measured various projects before and after 
>>> converting to ARC, I have seen numbers between 30% and 100% slowdown with 
>>> ARC.  The average is probably around 50%.  I have never seen performance 
>>> improve when using ARC.
>> 
>> 
>> And does the profiler explicitly shows that ARC runtime code is the culprit 
>> ? 
> 
> 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).

I'd be interested to dig a little further in what cause the slowdown. Do you 
have some sample code/file that can be used to stress the library and profile 
it ? 

-- Jean-Daniel





_______________________________________________

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