On Mon, 22 Sep 2014 21:34:34 +0300, Boian Mitov <mi...@mitov.com> wrote:

Strongly disagree...
For multithreading and parallel processing ARC is lifesaver. I have been using it trough interfaces for 10 years already, and once I rewrote the old code to use ARC it was a huge performance boost, and it keeps getting better.

What on earth has reference counting got to do with writing efficient multi-threaded code? You obviously confuse parallel performance, which reference counting will obviously degrade, with making some particular coding style easier. And sure, if your threads don't use shared resources they will be very parallel indeed.

If your argument is that by writing less code you have more time to refactor code, therefore you write better algorithms, and they run better - then this would be a valid point for your situation. However, one size does not fit all. I am not going to re-profile code because suddenly assignments will not only incur a (possibly virtual) function call but also lock other threads even if for a cycle or two. Not to mention cache misses because every time you assign a pointer its value must be fetched from memory and incremented, therefore messing around with data which was supposed to be in the cache. And screw other threads' caches.

To put it differently, ARC will seriously degrade applications which fill the memory bus bandwidth, multi-threaded or otherwise. For such pieces of code it should not be used.

Peter
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to