Am 23.03.2014 08:13, schrieb Russel Winder:
On Sat, 2014-03-22 at 21:13 +0000, deadalnix wrote:
[…]
HFT is very latency sensitive. D stop the world GC is a no go.

D needs a better GC to be viable in these markets.

GC technology was well beyond "stop the world" in Common Lisp in the
1990s. Java learnt this lesson in the 2000s. IBM, Azul, and now OpenJDK
have an array of very sophisticated, and indeed some real-time, garbage
collectors. Clearly though the Lisp and Java worlds are very different
from the C++, D and Go worlds, thus sophisticated algorithms cannot
simply be transplanted.

As I understand it, Go has a parallel mark and sweep algorithm which is
relatively unsophisticated, and a bit "stop the world", but they claim
fine for small heaps: generational and compacting collectors (as per
Java) are only beneficial for large heaps is the claim (but I haven't
seen much data to back this up for Go). There is rumour of a change, but
this has been circulating for ages.

I guess Herb Sutter's (reported) view that he can write C++ code with no
new and so no need for garbage collection, if applied to D would mean
that although the collector "stopped the world", the heap would need no
work and be small. But for real time you would just have to remove the
GC completely to have the needed guarantees.


Well, there is a nice quote from Bjarne as well:

"C++ is my favourite garbage collected language because it generates so little garbage"

And yet C++11 got to have an optional GC API defined, so even the ANSI/ISO folks do recognize its value in C++.

Visual C++ already supports it,

http://msdn.microsoft.com/en-us/library/vstudio/hh567368%28v=vs.120%29.aspx

--
Paulo

Reply via email to