< prev index next >

src/hotspot/share/gc/g1/g1OldGenAllocationTracker.cpp

Print this page
rev 60542 : [mq]: 8245511-rev.3

*** 46,50 **** --- 46,63 ---- _allocated_humongous_bytes_since_last_gc = 0; log_debug(gc, alloc, stats)("Old generation allocation in the last mutator period, " "old gen allocated: " SIZE_FORMAT "B, humongous allocated: " SIZE_FORMAT "B.", _last_period_old_bytes, _last_period_humongous_bytes); } + + size_t G1OldGenAllocationTracker::last_period_net_survived_old_bytes() const { + // The upper limit of the freed region count is the number of regions allocated + // since the last gc. When more humongous regions survived the current gc than + // survived the previous one, deduct the increment. + size_t freed_humongous_bytes = _last_period_humongous_bytes; + + if (freed_humongous_bytes > 0 && _humongous_bytes_after_penultimate_gc < _humongous_bytes_after_last_gc) { + freed_humongous_bytes -= _humongous_bytes_after_last_gc - _humongous_bytes_after_penultimate_gc; + } + assert(_last_period_old_bytes >= freed_humongous_bytes, "Allocation rate cannot be negative"); + return _last_period_old_bytes - freed_humongous_bytes; + }
< prev index next >