Disable GC entirely

Paulo Pinto pjmlp at progtools.org
Wed Apr 10 04:18:30 PDT 2013


On Wednesday, 10 April 2013 at 09:15:26 UTC, Manu wrote:
> On 10 April 2013 19:07, Dicebot <m.strashun at gmail.com> wrote:
>
>> On Wednesday, 10 April 2013 at 08:57:55 UTC, Manu wrote:
>>
>>> That sounds horribly non-deterministic. What if you have 
>>> 256mb of ram, and
>>> no pagefile, and you fill it up till you have 1mb headroom 
>>> spare?
>>>
>>
>> It is Erlang, it is not meant to be run on 256Mb RAM ;) It 
>> kind of solves
>> the issue of response latency for GC-enabled software on 
>> powerful
>> enterprise servers. Because with stop-the-world GC you can't 
>> do it, does
>> not matter how powerful your hardware is.
>>
>> Does not help game dev and small-scale embedded though, that 
>> for sure ;)
>>
>
> Well there's always the standing question though, why is JVM 
> and C# so much
> faster than D?
> They produce a squillion times more garbage than D, yet they're 
> much much
> faster. I have come to accept the C# GC in less-intensive 
> realtime
> software, it's not so bad.

First of all they require the use of safe references. Pointer 
manipulation is reserved to unsafe regions, which allows for more 
aggressive GC algorithms.

Secondly you have years of GC research invested into those 
runtimes.

Finally they don't offer a single GC, but tunable versions.

Additionally the garbage might be less than what you think, 
because you may use "new" but the JIT will actually do a stack 
allocation if it sees the object will be dead at the end of scope.

Some Java related information,
http://www.oracle.com/technetwork/java/javase/tech/g1-intro-jsp-135488.html
http://docs.oracle.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html

--
Paulo





More information about the Digitalmars-d mailing list