Heap size ergonomics can generate a virtual memory reservation size request that exceeds
what the OS can satisfy. This is a particular problem on Windows when running a jvm embedded in another process. It can be impossible to allocate a contiguous chunk of
virtual address space for the Java heap due to a fragmented virtual address space.
The current behavior is to refuse to start the vm. In the absence of a non-contiguous
heap solution, an interim fix is to progressively step down the size of the heap
reservation request until the OS can satisfy it. We probably want to stop at the
default minimum size, currently 96mb.