Egor Pasko wrote: > As I remember discussions.. a number unconditional writes may show a > different picture on multiprocessor machines because of massive cache > invalidations between processors. Is it easy to get similar statistics > for multiprocessor machines?
It will require using parallel GC (gc_gen) and a multiprocessor. it will take a while to read and understand gc_gen code. Robin Garner wrote: > Actually I think the results show that the vtable marks are in the > noise. hsqldb is a highly multithreaded benchmark, and so prone to > timing discrepancies. What was the variability of the results ? A > single-threaded benchmark like bloat, antlr or pmd might give less > variation. Thanks for the advice, I will try bloat. hsqldb was chosen randomly as a "known running on DRLVM" benchmark. Variation is indeed great, and far exceeds the difference between the runs. I've also tried to choose the lowest time across 5 runs, and the results were very similar: slowdown of the order of 1%. > The other interesting point is the side data structure, something like > > MARK_BYTES=size_of_vtable_space << log_min_vtable_align; > byte[MARK_BYTES] mark_bytes; > > mark_bytes[((int)vtable)<<(min_vtable_align)] = 1; I will try this techniques too.
