GCs are complicated beasts: .NET Core, 35000 lines

Paulo Pinto via Digitalmars-d digitalmars-d at puremagic.com
Fri Feb 6 02:14:47 PST 2015


On Friday, 6 February 2015 at 09:38:48 UTC, Muahmmad Adel wrote:
> On a previous reddit thread, Andrei Alexandrescu said that he 
> will be rewriting the GC based on the core allocator. However 
> there were no more details about this anticipated garbage 
> collector features.
>
> So will the garbage collector be a generational one? will it 
> allow some sort of control over latency of garbage collection ( 
> allowing a low latency option or something similar).
>
> We had this case that we faced with ElasticSearch, where 
> garbage collection firing non-deterministically (non 
> deterministic firing time and non deterministic garbage 
> collection time) causes one node to suddenly be not responding, 
> increasing load over other nodes, which in turn when having 
> higher load go into garbage collection halt one after the 
> other, which causes the whole system to be unresponsive for a 
> good amount of time.
>
> This is an  example of thundering herd anti pattern where one 
> event causes all nodes to go busy.
>
> I am not a java developer but I think that java's GC allows 
> more control over things and ElasticSearch simply didn't use 
> these controls or used them inefficiently.
>
> However, with the increasing trend towards distributed server 
> applications, having more control over the garbage collector's 
> performance parameters would be crucial for pushing D to this 
> area.

Each JVM (Oracle, IBM, HP-UX, ...) has a different set of knobs 
to turn.

http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html#BABFAFAE

And visual monitoring tools to go alongside them. In Oracle's case

http://visualvm.java.net/

http://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-1998576.html

However it is true that in such types of applications, there are 
still a few issues to tackle in Java, which D already handles 
without problems like real generics, value types, painless 
integration with C and C++ code.

All issues to be fixed latest by Java 10 time-frame (Projects 
Panama, Valhalla and Sumatra).

--
Paulo


More information about the Digitalmars-d mailing list