manual memory management

Paulo Pinto pjmlp at progtools.org
Wed Jan 9 04:37:35 PST 2013


On Wednesday, 9 January 2013 at 10:21:29 UTC, Mehrdad wrote:
> On Wednesday, 9 January 2013 at 10:14:07 UTC, dennis luehring 
> wrote:
>> Am 09.01.2013 11:09, schrieb Mehrdad:
>>> On Wednesday, 9 January 2013 at 10:07:42 UTC, deadalnix wrote:
>>>> Reference counting tend to create big pauses when 
>>>> deallocating
>>>> as objects tends to dies in group.
>>>
>>>
>>>
>>>
>>> I don't get it... it's slower to deallocate a bunch of objects
>>> together with refcounting than to deallocate all of them
>>> individually over a longer period of time?
>>>
>>
>> could be - think of an large hierarchy of objects which tends 
>> to take some time to deconstruct ... a background gc could be 
>> better for your application speed in this situation - by the 
>> cost of smaller pause and more resource usage
>
>
> Come to think of it, C++ allocators are meant for exactly this: 
> throwing away an entire batch of objects in 1 go. Beats GCs any 
> day.
>
>
>>
>> or better - what is the real reason for Java and C# for using 
>> garbage collectors if ref-counting will be always better 
>> (except cyclic stuff)?
>
> Pretty sure the only reason C#/Java use a GC _is_ for cyclic 
> stuff, and that's it.
>
>
> If you have any other reasons please show me a benchmark that 
> shows a GC being faster than the equivalent refcounted code 
> (I've seen lots of talks in theory about how it _COULD_ be 
> different but never seen any examples in practice; would love 
> to see one).

Reference counting always implies extra booking code per memory 
access, I fail to see how it can be made faster than any parallel 
GC.

The Aonix VM for example is used in military scenarios like 
missile radar systems and battleship gun's control systems, beats 
any game timing requirements, I would say.

--
Paulo


More information about the Digitalmars-d mailing list