Am 09.10.2013 16:52, schrieb Manu:
On 9 October 2013 23:06, Michel Fortin <michel.for...@michelf.ca
<mailto:michel.for...@michelf.ca>> wrote:

    On 2013-10-09 07:33:29 +0000, Manu <turkey...@gmail.com
    <mailto:turkey...@gmail.com>> said:

        Is there more to it? Cleaning up circular references I guess...
        what does
        Apple do?


    Apple implemented auto-nulling weak pointers for ARC (as well as
    __unsafe_unretained ones if you are not afraid of dangling pointers).

        It's an uncommon edge case, so there's gotta be heaps of room
        for efficient
        solutions to that (afaik) one edge case. Are there others?


    I don't know about you, but circular references are not rare at all
    in my code.

    Another solution that could be used for circular references is to
    have the stop-the-world GC we have now collect them. Reference
    counting could be used to free GC memory in advance (in the absence
    of circular references), so the GC would have less garbage to
    collect when it runs.

    Both solutions (week-autonulling and last-resort GC) are not
    mutually exclusive and can coexist.


I suspect there are plenty of creative possibilities that could be
applied to reducing the pool of potential circular-references to as
small a pool as possible.
It's simply not feasible to have machine scanning 4-6 gigabytes of
allocated memory looking for garbage.

The Azul VM does not have a problem with it, as it does pauseless concurrent GC, while being used on online trading systems.

--
Paulo

Reply via email to