< prev index next >

src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp

Print this page
rev 7696 : 8061802: REDO - Remove the generations array
Summary: The _gens array is removed and replaced by explicit _young_gen and _old_gen variables.
Reviewed-by:


 846   // compute expansion delta needed for reaching desired free percentage
 847   if (free_percentage < desired_free_percentage) {
 848     size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
 849     assert(desired_capacity >= capacity(), "invalid expansion size");
 850     size_t expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
 851     if (PrintGCDetails && Verbose) {
 852       size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
 853       gclog_or_tty->print_cr("\nFrom compute_new_size: ");
 854       gclog_or_tty->print_cr("  Free fraction %f", free_percentage);
 855       gclog_or_tty->print_cr("  Desired free fraction %f",
 856         desired_free_percentage);
 857       gclog_or_tty->print_cr("  Maximum free fraction %f",
 858         maximum_free_percentage);
 859       gclog_or_tty->print_cr("  Capacity "SIZE_FORMAT, capacity()/1000);
 860       gclog_or_tty->print_cr("  Desired capacity "SIZE_FORMAT,
 861         desired_capacity/1000);
 862       int prev_level = level() - 1;
 863       if (prev_level >= 0) {
 864         size_t prev_size = 0;
 865         GenCollectedHeap* gch = GenCollectedHeap::heap();
 866         Generation* prev_gen = gch->_gens[prev_level];
 867         prev_size = prev_gen->capacity();
 868           gclog_or_tty->print_cr("  Younger gen size "SIZE_FORMAT,
 869                                  prev_size/1000);
 870       }
 871       gclog_or_tty->print_cr("  unsafe_max_alloc_nogc "SIZE_FORMAT,
 872         unsafe_max_alloc_nogc()/1000);
 873       gclog_or_tty->print_cr("  contiguous available "SIZE_FORMAT,
 874         contiguous_available()/1000);
 875       gclog_or_tty->print_cr("  Expand by "SIZE_FORMAT" (bytes)",
 876         expand_bytes);
 877     }
 878     // safe if expansion fails
 879     expand_for_gc_cause(expand_bytes, 0, CMSExpansionCause::_satisfy_free_ratio);
 880     if (PrintGCDetails && Verbose) {
 881       gclog_or_tty->print_cr("  Expanded free fraction %f",
 882         ((double) free()) / capacity());
 883     }
 884   } else {
 885     size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
 886     assert(desired_capacity <= capacity(), "invalid expansion size");




 846   // compute expansion delta needed for reaching desired free percentage
 847   if (free_percentage < desired_free_percentage) {
 848     size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
 849     assert(desired_capacity >= capacity(), "invalid expansion size");
 850     size_t expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
 851     if (PrintGCDetails && Verbose) {
 852       size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
 853       gclog_or_tty->print_cr("\nFrom compute_new_size: ");
 854       gclog_or_tty->print_cr("  Free fraction %f", free_percentage);
 855       gclog_or_tty->print_cr("  Desired free fraction %f",
 856         desired_free_percentage);
 857       gclog_or_tty->print_cr("  Maximum free fraction %f",
 858         maximum_free_percentage);
 859       gclog_or_tty->print_cr("  Capacity "SIZE_FORMAT, capacity()/1000);
 860       gclog_or_tty->print_cr("  Desired capacity "SIZE_FORMAT,
 861         desired_capacity/1000);
 862       int prev_level = level() - 1;
 863       if (prev_level >= 0) {
 864         size_t prev_size = 0;
 865         GenCollectedHeap* gch = GenCollectedHeap::heap();
 866         Generation* prev_gen = gch->get_gen(prev_level);
 867         prev_size = prev_gen->capacity();
 868           gclog_or_tty->print_cr("  Younger gen size "SIZE_FORMAT,
 869                                  prev_size/1000);
 870       }
 871       gclog_or_tty->print_cr("  unsafe_max_alloc_nogc "SIZE_FORMAT,
 872         unsafe_max_alloc_nogc()/1000);
 873       gclog_or_tty->print_cr("  contiguous available "SIZE_FORMAT,
 874         contiguous_available()/1000);
 875       gclog_or_tty->print_cr("  Expand by "SIZE_FORMAT" (bytes)",
 876         expand_bytes);
 877     }
 878     // safe if expansion fails
 879     expand_for_gc_cause(expand_bytes, 0, CMSExpansionCause::_satisfy_free_ratio);
 880     if (PrintGCDetails && Verbose) {
 881       gclog_or_tty->print_cr("  Expanded free fraction %f",
 882         ((double) free()) / capacity());
 883     }
 884   } else {
 885     size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
 886     assert(desired_capacity <= capacity(), "invalid expansion size");


< prev index next >