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

I don't know a lot about GC and didn't know about this before I saw this on HN, but I think it is super elegant. One thing I didn't understand: Are all objects assumed to be exactly the same size? Since allocation is just the move of a pointer, that appears to be the case. But how would that work if one would want to implement Treadmill for a language like Java where object sizes vary?


Variable size objects are addressed at the very end of the post: "Support for variable-sized objects requires a separate cyclic list for each size...".


That implies that you have to divide up the memory ahead of time into an area for each size? If you get the proportions wrong you will waste memory.

Languages with only one object size are not exactly in vogue at the moment, so this is a major limitation.


> That implies that you have to divide up the memory ahead of time into an area for each size?

No, it doesn't, as it maintains linked lists of objects, so you can use any underlying allocator to feed you objects to add to the different linked lists.


You can extend or shrink circular list on the go, depending on needs. You can plan to divide memory ahead of time, but you don't have to.


Thanks, I somehow missed that line.




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

Search: