Am 16.12.2013 19:21, schrieb Andrei Alexandrescu:

What parts of the book support that opinion?

Generally I think it is a good idea to think about tracing and identify
all problems the language still has with propper tracing. Because it
seems that this has not been done in the past.

Tracing alone is also not enough. There would also be a need for a
gc-stop point kind of api that inserts points where the GC can stop the
program without corrupting it.

That is correct. Such would come in the form of guarantees of when it's
safe to initiate, pause, and resume iteration.


Andrei


Well they talk about all these issues in Chapter 11 where they give different ways to implement finding pointers, read / write barriers etc. They mention several times, that the implementation highly depends on the type of Collector choosen and on the architecture (e.g. can you afford to waste a CPU register?) In all other parts of the book they constantly talk about "balancing the cost between the mutator and the collector" also depending on the type of collector choosen.

In my opinion we should first decide on the type of collector to be implemented and then implement the subsystems needed by that collector, in a way that optimally serves that collector. If someone wants to implement another type of collector, they will have to work with whats there. In my opinion doing a to generalized solution will lead to bad performance and unneccessary issues when implementing the reference collector.

Kind Regards
Benjamin Thaut

Reply via email to