[fpc-devel] Suggestion: reference counted objects

Peter Popov ppopov99 at gmail.com
Tue Sep 23 21:51:19 CEST 2014


Boian,
since you keep on repeating the false argument that reference counting
will somehow speed up parallel performance, I will restate the obvious:
using reference counting will decrease parallel performance for the
following obvious reasons:
1. Each reference assignment involves an atomic operation which, if used
often enough will cause threads to wait and waste cycles.
2. Each reference assignment involves pulling the value referenced by a
pointer and incrementing/decrementing it. In the process you will mess up
with the cache of the current thread: data which was supposed to be in the
cache for real work will be invalidated because of the ARC operation.
3. The cache of other threads will be similarly affected, even if the
atomic operation does not involve other threads
4. ARC operations will likely involve virtual functions, which have
overhead and do cause pointer running.

In summary, in memory intensive code, where the bus bandwidth is fully
utilized, ARC is a serious problem because of 2-4. In CPU intensive code 1
is a problem.

Now, it is good that you managed to reduce your code by a factor of 4.
Clearly this is not due to availability of ARC. Clearly what you do is not
the only thing that programming languages are used for. So, the
implication that we will all somehow benefit likewise if ARC is introduced
is simply ludicrous.


Peter


On Tue, 23 Sep 2014 20:43:28 +0300, Boian Mitov <mitov at mitov.com> wrote:

> Yes, our solutions are among the most advanced that currently exist, and  
> are on the cutting edge by any mean.
> Most of the technologies are developed by us to solve problems  
> traditionally considered unsolvable ;-) .
> This is what keeps us in business ;-) .
> Most people do not understand how we can do what we do, but there is no  
> magic. It is all very well developed (I dear to say), and at the end  
> very simple code (Took many years to get it that simple :-D ).
>
> With best regards,
> Boian Mitov
>
> -------------------------------------------------------
> Mitov Software
> www.mitov.com
> -------------------------------------------------------
> -----Original Message----- From: Giuliano Colla
> Sent: Tuesday, September 23, 2014 10:26 AM
> To: FPC developers' list
> Subject: Re: [fpc-devel] Suggestion: reference counted objects
>
>
> Il 23/09/2014 18:00, Boian Mitov ha scritto:
> Maybe I'm simple minded but I still have some pain understanding how a
> producer thread may manage to send an object to a one or more consumer
> threads which a) are unknown to it, and b) may not yet exist. Again not
> an hypothetical case. Just a different application frame.
>
> Giuliano
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel  
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>


-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



More information about the fpc-devel mailing list