concatenated block serialization

Clemens Eisserer linuxhippy at gmail.com
Fri Apr 4 12:24:31 PDT 2008


Hi,

>  Now loading was a snap: First we loaded the list into one block and the data block into
> another. Second we iterated over the list and added these pointer offsets to the base
> address of the data block to find the addresses of the pointers. Third we added the
> base address of the data block to them. This restored a completely working data block
> and we could release the pointer list block. The performance increase was stunning.

Well the JVM more or less does all this, quite a bit arround edges but
in fact it does what you propose.
The JVM acquires a large area of memory (the heap) where it can
allocate memory usually with a few instructions. Of course heap is not
the continues block you describe, but it does pretty much the same.

As far as I know allocation is typically not the problem for
serialization, but I may be wrong.
As far as I know traversing the whole object-graph is not that cheap,
furthermore it also uses tons of reflective accesses of course.

lg Clemens



More information about the hotspot-runtime-dev mailing list