Modelling Garbage Collection as a Random Process.
The thing that's been ringing in my mind recently is that garbage collection is an inherently random process. Its not just garbage collection – memory allocation and memory access patterns can also be modelled as random process. And I also have a very strong hunch they are all related. I wish I could test all this with some real data, but as such both my virtual machine and the compiler for my VM is still incomplete. And there are no real programs yet to actually test my theory on. But I am pretty much confident that garbage collection can be modelled as a Random Process and it would give us some real insights into improving them.
In fact I have the following theory. The lifetime of an object on a gc'd heap is not just a function of its past life time (as in generational gc) but also a function of the amount of information it contains (one rough measure of information it contains would be the size of the object itself). If I had an applicable and verifiable model, it would really do the world so much good with gc'd languages being in fashion (and not seeming to go out of fashion anytime soon).
Also I guess the design of a virtual machine would affect the way garbage collection takes place, but only in terms of the number of access (ie, quantitatively rather than qualitatively). What would really matter would be the memory allocation/garbage collection algorithm. Also, I am very interested in the role finalisation plays with garbage collection. (If you have ever tried doing a gc, finalisation is a big pain in the a**).
But unfortuantely,these are just theories, and every scientific theory should be tested on the solid ground of experimentation and good experimentation requires good data. Since my final year project was just a VM lacking any angle, I guess I've finally got my angle. So I've decided to post here regarding the status of whats happening whenever I've some results or atleast something interesting in this regard. So watch this space!.