September 22, 2015
Am Mon, 21 Sep 2015 23:57:48 +0000
schrieb ponce <contact@gam3sfrommars.fr>:

> Latest version of my game is built with this release: http://www.gamesfrommars.fr/vibrant/
> 
> I was pleased to see performance enhancements notably in GC pauses.

If you actually moved from ldc2 0.15 to 0.16 I wouldn't call this a shameless self-advertising. ;)

What you really changed:
- target architecture from x86 32-bit to 64-bit
- compiler back-end from DMD to LDC
- switched from D1 to D2

So the better performance is not surprising. Aside from actual changes to the GC in D2, ldc2 also replaces GC allocations with stack allocations in some cases, reducing the amount of short lived garbage, which is the way it's meant to be (tm) and the larger address range of 64-bit makes false positives (i.e. ints that look like pointers to GC memory) in the mark phase unlikely.

-- 
Marco

September 22, 2015
On Tuesday, 22 September 2015 at 01:59:33 UTC, Marco Leise wrote:
> So the better performance is not surprising. Aside from actual changes to the GC in D2, ldc2 also replaces GC allocations with stack allocations in some cases, reducing the amount of short lived garbage, which is the way it's meant to be (tm) and the larger address range of 64-bit makes false positives (i.e. ints that look like pointers to GC memory) in the mark phase unlikely.

I haven't tested against 64-bit DMD. Maybe it also exposes GC pauses reductions.


1 2
Next ›   Last »