Re: ARC vs Manual Reference Counting
Re: ARC vs Manual Reference Counting
- Subject: Re: ARC vs Manual Reference Counting
- From: Dave <email@hidden>
- Date: Thu, 12 Sep 2013 08:36:22 +0100
On 11 Sep 2013, at 19:59, Louis Gerbarg <email@hidden> wrote:
>
> The world is a very different place than it was then, in the 80s RAM was a lot faster relative to the CPU. There is absolutely no way something like you describe today could be done today, most deeply pipelined OoOE CPUs can barely forward a register in 1 CPU cycle. Getting out to L3 cache is often on the order of 20-40 cycles depending on the part, and main memory can literally be hundreds of cycles. Algorithms designed to work in an environments with single cycle ram access simply don't hold up on modern pipelined cache coherent multi-process systems where the processing logic runs at significant multiples of the memory.
This is indeed true, but where there's a will there's a way and what we are talking about is relatively simple compared to some of the awesome hardware already out there. I don't think this is the reason it hasn't been done, I think it's more to do with what you'd have to do with the Unix Kernel and friends to make it work. It would make a lot of code incompatible which is bad news and it would also cost a fortune.
Besides there are two ways (at least) of doing this, one is super fast and would be very difficult/impossible to implement as per your comment above. But there is another way that is not so fast, but would still be much faster then main CPU doing it and it would also have leak detection. But its not going to happen to pointless talking about it.
> >> If Apple were to implement something like this I think there would be a massive increase in performance and reliability
> >
> > Nothing personal, but I think you’re falling into the common fallacy of thinking that Apple engineers are naive and/or ignorant. It happens all the time on these lists. In general, you should assume that the people working on system software are pretty damn smart and experienced, and are aware of all the techniques that an interested but non-expert outsider would know of. If they’re not using them, there’s probably a good reason for it.
>
> I'm sure the engineers are a mixture of good, mediocre, and not so good the same as any where else, why should Apple be different? But engineers don't get much say on what projects/features are implemented (especially somewhere like Apple, MS or any of the big 5 technology companies).
>
> If you mean user features then sure, often engineers have little say. If you mean runtime and developer features then you are wrong, the developers at Apple have a lot of say in how what happens. Tim Cook and Phil Schiller didn't sit down in a meeting and say "Let's implemented tagged pointers, users will love those," and yet somehow we have them ;-)
This is true too, but only because they sold it to them and it just happened to fit in with what they wanted. I'm not saying the engineering department doesn't come up with wonderful features but I've seen really cool products dropped at Apple and other places simply because it wasn't in the direction the current upper management of the company wanted to go at the time and had nothing to do with how good or bad the underlying technology was.
Dave
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden