On 10 April 2013 21:18, Paulo Pinto <[email protected]> wrote: > On Wednesday, 10 April 2013 at 09:15:26 UTC, Manu wrote: > >> On 10 April 2013 19:07, Dicebot <[email protected]> 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. >
Good point. It'd be really great if D implemented optimisations of this sort too one of these days. There's a lot of such opportunities waiting for some attention. I'd be very interested to see what sort of practical difference they make. Some Java related information, > http://www.oracle.com/**technetwork/java/javase/tech/** > g1-intro-jsp-135488.html<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<http://docs.oracle.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html> >
