Mercurial > hg > truffle
comparison src/share/vm/memory/defNewGeneration.cpp @ 13060:8f07aa079343
8016309: assert(eden_size > 0 && survivor_size > 0) failed: just checking
7057939: jmap shows MaxNewSize=4GB when Java is using parallel collector
Summary: Major cleanup of the collectorpolicy classes
Reviewed-by: tschatzl, jcoomes
author | jwilhelm |
---|---|
date | Fri, 01 Nov 2013 17:09:38 +0100 |
parents | 330dfb0476f4 |
children | 86e6d691f2e1 |
comparison
equal
deleted
inserted
replaced
13059:46d7652b223c | 13060:8f07aa079343 |
---|---|
202 vm_exit_during_initialization("Could not allocate a new gen space"); | 202 vm_exit_during_initialization("Could not allocate a new gen space"); |
203 | 203 |
204 // Compute the maximum eden and survivor space sizes. These sizes | 204 // Compute the maximum eden and survivor space sizes. These sizes |
205 // are computed assuming the entire reserved space is committed. | 205 // are computed assuming the entire reserved space is committed. |
206 // These values are exported as performance counters. | 206 // These values are exported as performance counters. |
207 uintx alignment = GenCollectedHeap::heap()->collector_policy()->min_alignment(); | 207 uintx alignment = GenCollectedHeap::heap()->collector_policy()->space_alignment(); |
208 uintx size = _virtual_space.reserved_size(); | 208 uintx size = _virtual_space.reserved_size(); |
209 _max_survivor_size = compute_survivor_size(size, alignment); | 209 _max_survivor_size = compute_survivor_size(size, alignment); |
210 _max_eden_size = size - (2*_max_survivor_size); | 210 _max_eden_size = size - (2*_max_survivor_size); |
211 | 211 |
212 // allocate the performance counters | 212 // allocate the performance counters |
233 | 233 |
234 void DefNewGeneration::compute_space_boundaries(uintx minimum_eden_size, | 234 void DefNewGeneration::compute_space_boundaries(uintx minimum_eden_size, |
235 bool clear_space, | 235 bool clear_space, |
236 bool mangle_space) { | 236 bool mangle_space) { |
237 uintx alignment = | 237 uintx alignment = |
238 GenCollectedHeap::heap()->collector_policy()->min_alignment(); | 238 GenCollectedHeap::heap()->collector_policy()->space_alignment(); |
239 | 239 |
240 // If the spaces are being cleared (only done at heap initialization | 240 // If the spaces are being cleared (only done at heap initialization |
241 // currently), the survivor spaces need not be empty. | 241 // currently), the survivor spaces need not be empty. |
242 // Otherwise, no care is taken for used areas in the survivor spaces | 242 // Otherwise, no care is taken for used areas in the survivor spaces |
243 // so check. | 243 // so check. |
471 return eden()->free() | 471 return eden()->free() |
472 + from()->free(); // to() is only used during scavenge | 472 + from()->free(); // to() is only used during scavenge |
473 } | 473 } |
474 | 474 |
475 size_t DefNewGeneration::max_capacity() const { | 475 size_t DefNewGeneration::max_capacity() const { |
476 const size_t alignment = GenCollectedHeap::heap()->collector_policy()->min_alignment(); | 476 const size_t alignment = GenCollectedHeap::heap()->collector_policy()->space_alignment(); |
477 const size_t reserved_bytes = reserved().byte_size(); | 477 const size_t reserved_bytes = reserved().byte_size(); |
478 return reserved_bytes - compute_survivor_size(reserved_bytes, alignment); | 478 return reserved_bytes - compute_survivor_size(reserved_bytes, alignment); |
479 } | 479 } |
480 | 480 |
481 size_t DefNewGeneration::unsafe_max_alloc_nogc() const { | 481 size_t DefNewGeneration::unsafe_max_alloc_nogc() const { |