Avoid excessive GCs in small heaps.
authorulan <ulan@chromium.org>
Thu, 21 May 2015 12:50:45 +0000 (05:50 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 21 May 2015 12:50:24 +0000 (12:50 +0000)
commit22b1da99732b4db0754bf267ec470a2831216fb2
tree3a927453d5eb3e4f928ea9993d7c17581bc0ccee
parentd04de62be3169045e4b0a7e3bbbf1dcbb234d1d5
Avoid excessive GCs in small heaps.

Small heaps and small heap growing factor can lead to excessive GCs in corner cases.

Consider function F(old_gen_size, factor) that returns the number of bytes that
have to be allocated in the old generation to start incremental marking.

F(4MB, 1.1) = 4MB (because of kMinimumOldGenerationAllocationLimit)
F(6MB, 1.1) = 2MB (because of kMinimumOldGenerationAllocationLimit)
F(8MB, 1.1) = 800KB

Funtion F should be monotonic in old_gen_size, but it currently has a minimum
at kMinimumOldGenerationAllocationLimit.

This CL makes F monotonic.

BUG=

Review URL: https://codereview.chromium.org/1144223002

Cr-Commit-Position: refs/heads/master@{#28549}
src/heap/heap.cc