GC vs. Manual Memory Management Real World Comparison
Rob T
rob at ucora.com
Tue Oct 23 15:31:01 PDT 2012
On Tuesday, 23 October 2012 at 16:30:41 UTC, Benjamin Thaut wrote:
> Here a small update:
>
> I found a piece of code that did manually slow down the
> simulation in case it got to fast. This code never kicked in
> with the GC version, because it never reached the margin. The
> manual memory managed version however did reach the margin and
> was slowed down. With this piece of code removed the manual
> memory managed version runs at 5 ms which is 200 FPS and thus
> nearly 3 times as fast as the GC collected version.
>
> Kind Regards
> Benjamin Thaut
That's a very significant difference in performance that should
not be taken lightly. I don't really see a general solution to
the GC problem other than to design things such that a D
programmer has a truely practical ability to not use the GC at
all and ensure that it does not sneak back in. IMHO I think it
was a mistake to assume that D should depend on a GC to the
degree that has taken place.
The GC is also the reason why D has a few other significant
technical problems not related to performance, such as inability
to link D code to C/C++ code if the GC is required on the D side,
and inability to build dynamic liraries and runtime loadable
plugins that link to the runtime system - the GC apparently does
not work correctly in these situatons, although the problem is
solvable how this was allowed to happen in the first place is
difficult to understand.
I'll be a much more happy D programmer if I could guarantee where
and when the GC is used, therefore the GC should be 100% optional
in practice, not just in theory.
--rt
More information about the Digitalmars-d-announce
mailing list