I suggest that you move this line
GC.disable;
to the first line.
I don't see how you are doing your timings so that part is a wild
card.
Also note that when the GC is re-enabled it can add a significant
amount of time to the tests. You are not explicitly re-enabling
the GC, but I don't know if the GC kicks back as part of program
termination, it probably shouldn't but we lack precise
documentation and cannot be certain.
I would test timings immediately after the GC is disabled and
prior to program termination to see what affects the GC may or
may not have on the timings.
--rt