thedeemon:
HotSpot and, I suppose, other mature JVMs provide generational GCs, so you won't get 5 seconds delay after each 8 MB of allocated data there.
They need a certain amount of seconds for each GB of heap memory (assuming an average amount of pointers in that GB of data structures. Java data structures contain many pointers, unlike C# and D). The G1 garbage collector helps spread this computation.
Bye, bearophile