Hacker Newsnew | past | comments | ask | show | jobs | submitlogin



I did this once - a compacting collector for C. it was a really trivial mark/sweep - and as I recall you had to write functions for each type to perform the object graph traversal. for artificial memory-intensive workloads it was around 8x the performance of boehm.


Is this anything you'd be willing to share publicly?

How did you determine the scope of a chunk of memory? I believe you need this to run any of the GC algorithms.

I checked the hboehm documentation (1) and in the section on "Locating roots" it says "you don't want to know":

-Runtime stack(s): you don't really want to know.Need consistent caller-save reg. snapshot

-Static data segments: you don't want to know that either.

-Very platform dependent • But you only have to do it once per platform.

(1) https://www.hboehm.info/gc/04tutorial.pdf


yeah, of course. its old crap that I'd have to find if I can. I will look.

roots in boehm means globals and the stack. this little thing had explicitly declared roots.

edit: I found it, mail me at yuri@tenuki.org. be prepared to be unimpressed.


That was my first reaction as well, I haven't really used it, but it's an interesting tool.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: