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");
|