Hi All, I've started working on a new GC for Cog and have a few questions. 1. does anyone have a copy of Joel Bartlett's J. F. Bartlett. A generational, compacting collector for C++. In E. Jul and N.-C. Juul, editors, OOPSLA/ECOOP ‘90 Workshop on Garbage Collection in Object-Oriented Systems, Oct. 1990. ?
2. what's the largest number of classes you've got in your most complex image and/or what's the largest number of classes you're ever created in an image? a.k.a. is 64k classes enough (16 bits), or is 1m classes enough (24 bits)?
3. do you have any personal recommendations, or example code, of systems that combine generation scavenging and/or compaction with object pinning?
TIA, Eliot
|
Can't resist the following unproductive comment: Object pinning? Ugh!! I realize you probably, after much thought, have decided you cannot avoid pinning, but its consequences scare the you-know-what out of me. If you supported one class per object, then you could get rid of the identityHash field in the header, by making it an instance method. ;-) Oh wait a minute, since classes are objects, you would need oops larger than 64-bits each. ;-)
- David On Jun 15, 2010, at 2:17 PM, Eliot Miranda wrote: Hi All, |
In reply to this post by Eliot Miranda-2
At Tue, 15 Jun 2010 16:44:57 -0500, Ralph Johnson wrote: > > If people define classes by hand, I imagine 64k would be enough. But > suppose they are using light-weight classes, i.e. giving each object > its own behavior. Then it would be fairly easy to have more than 64K > of them, though 1M is still a reasonable limit. > > What is the difference in cost between choosing 64K as the limit and > choosing 1M? I know, one byte, but what else would you use that byte > for? If the next highest notch from 16 bit is 24 bit but not 20 bit, that would be 16M but not 1M. The big images in "our" use cases is with several million objects (not that big in other standard), so if each object theoretically had a distinct class, it would only barely fits. But in reality 16M classes and an object occupies around 40 byte each on avarage, only 6 instances or such per class on average before hitting 4GB. So, for 32-bit address space in mind, 16M classes would be a lot. 1M classes would be 100 instances on average (where the distribution of instance count is highly skewed so average would not make so much sense however), it still would be okay. (As Ralph asked, what are the other things that are competing the bits?) -- Yoshiki |
In reply to this post by Eliot Miranda-2
On Tue, Jun 15, 2010 at 2:17 PM, Eliot Miranda <[hidden email]> wrote: Hi All, thanks to all 5 of you who've provided this. Ta!
|
Free forum by Nabble | Edit this page |