On Thursday, 25 December 2014 at 20:00:43 UTC, Martin Nowak wrote:
On Thursday, 25 December 2014 at 14:55:32 UTC, Xinok wrote:
Ah OK, thought you had problems with stale stack values.
False pointers were discussed here https://youtu.be/LQY1m_eT37c?t=23m0s, but it's an issue that only affects few programs (32-bit with floats or random data in GC scanned memory). So unless we can use precise GC info to speed up marking, it will be a lot of work with little impact, even more since we have Win64 support.

Any program that processes significant amounts of information, such as scientific data, images, or videos, is likely to experience issues with the conservative GC. While it would be nice to say "just use 64-bit" to everybody, we can't ignore the fact that 32-bit is still widely used and it's not going away anytime soon. As for Win64 support, I've found it iffy at best; sometimes it works, sometimes it doesn't.

I think implementing a precise GC would be worth it in the long run. The key is realizing that there are many optimizations that can be applied which are impossible with a conservative GC. It may make programs a bit slower initially, but it's something that we can optimize over time (well beyond the 2015 goal).

Other languages that have transitioned from conservative to precise have experienced gains and losses in different suites of applications. In particular, programs that perform a lot of allocations actually saw better performance from the precise GC. Some languages benefit more from a precise GC more than others, so it's hard to say how successful it would be in D.

Reply via email to