Another possibility is that the heap size was too small for the first test. If you tested (4), (2), (3), (1) in this order, the heap may have become large enough after the execution of (4), and the number of gc calls became about half for the other tests. Why don't you test (4) again, after the last test (1)? -- Taiichi