Fail hard if initial heap size is too large
Summary: So it turns out that the heap overflow problem hit harder than I'd
thought. The issue was that we would GC only in the heap size doubled
from the initial size after server startup. That meant that when our
code took more than half the total heap size after startup, the GC would
*never* run!
I could've worked around this by relaxing the condition for collection,
but I figure it's better to fail early and hard than to slow down
gradually or fail unpredictably. If we're at more than half the total
heap size after startup, there's a good chance that some rebase would
cause the heap to overflow before the garbage collection gets invoked.
Reviewed By: @jwatzman
Differential Revision:
D2102019