[0] https://www.reddit.com/r/golang/comments/1c9fhet/how_much_go...
I've already been using bitvector SIMD for the sweep portion of mark/sweep. It's neat to see that tracing can be done this way.
VGF2P8AFFINEQB FTW
there's also the inverse: https://www.felixcloutier.com/x86/gf2p8affineinvqb
Also FTA: “One surprise result of this work was that scanning a mere 2% of a page at a time can yield improvements over the graph flood.”
⇒ I think you’d have to try and get two objects on each page, and they would have to be small (you’d have to be able to fit over 100 objects in a page to have 2 live objects be <2% of all objects in the page)
00: white
10: gray
11: black
then we cam describe it as a very cool variation of the tri-color gc algorithm.
https://en.wikipedia.org/wiki/Tracing_garbage_collection#Tri...
All better languages use a modern copying collector, if they have enough memory. It's also compacting, and doesn't stop the world. I think lisps just do mark & sweep on phones or embedded, and the mentioned ffi callbacks.
luafox•3mo ago
Cthulhu_•3mo ago