The movie perhaps needs a little explanation. It shows the execution of the 213.javac benchmark from the SpecJvm98 benchmark suite with the 10% data set. The rightmost column is the normal parameter/local variable Java stack (it's a single threaded benchmark). The next column is the allocation stack, where the system is stack allocating new objects. The next column is the semispace based first conventional GC generation. The large area is the main heap, which is so large that it is never garbage collected. Grey means unallocated, green means allocated and white means recently accessed. The idea of using the Peano curve to map addresses to screen coordinates is to make it easier to see locality of reference at both the cache line and page level. The stack allocation heuristic being used is "caller" (see the paper for details).At any rate I find it quite hypnotic to watch. The main visible activity is the semi-space collector ploughing through memory, and switching halves at regular intervals. In fact a large amount of allocation and deallocation is also taking place on the allocation stack (this is the entire point) but it's not as visible since it's taking place in a very small amount of memory (which is also the entire point). The scale is such that the semispaces are each 64kbytes large if I recall correctly.
No comments:
Post a Comment