938 // compute expansion delta needed for reaching desired free percentage
939 if (free_percentage < desired_free_percentage) {
940 size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
941 assert(desired_capacity >= capacity(), "invalid expansion size");
942 size_t expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
943 if (PrintGCDetails && Verbose) {
944 size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
945 gclog_or_tty->print_cr("\nFrom compute_new_size: ");
946 gclog_or_tty->print_cr(" Free fraction %f", free_percentage);
947 gclog_or_tty->print_cr(" Desired free fraction %f",
948 desired_free_percentage);
949 gclog_or_tty->print_cr(" Maximum free fraction %f",
950 maximum_free_percentage);
951 gclog_or_tty->print_cr(" Capacity "SIZE_FORMAT, capacity()/1000);
952 gclog_or_tty->print_cr(" Desired capacity "SIZE_FORMAT,
953 desired_capacity/1000);
954 int prev_level = level() - 1;
955 if (prev_level >= 0) {
956 size_t prev_size = 0;
957 GenCollectedHeap* gch = GenCollectedHeap::heap();
958 Generation* prev_gen = gch->_gens[prev_level];
959 prev_size = prev_gen->capacity();
960 gclog_or_tty->print_cr(" Younger gen size "SIZE_FORMAT,
961 prev_size/1000);
962 }
963 gclog_or_tty->print_cr(" unsafe_max_alloc_nogc "SIZE_FORMAT,
964 unsafe_max_alloc_nogc()/1000);
965 gclog_or_tty->print_cr(" contiguous available "SIZE_FORMAT,
966 contiguous_available()/1000);
967 gclog_or_tty->print_cr(" Expand by "SIZE_FORMAT" (bytes)",
968 expand_bytes);
969 }
970 // safe if expansion fails
971 expand(expand_bytes, 0, CMSExpansionCause::_satisfy_free_ratio);
972 if (PrintGCDetails && Verbose) {
973 gclog_or_tty->print_cr(" Expanded free fraction %f",
974 ((double) free()) / capacity());
975 }
976 } else {
977 size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
978 assert(desired_capacity <= capacity(), "invalid expansion size");
|
938 // compute expansion delta needed for reaching desired free percentage
939 if (free_percentage < desired_free_percentage) {
940 size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
941 assert(desired_capacity >= capacity(), "invalid expansion size");
942 size_t expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
943 if (PrintGCDetails && Verbose) {
944 size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
945 gclog_or_tty->print_cr("\nFrom compute_new_size: ");
946 gclog_or_tty->print_cr(" Free fraction %f", free_percentage);
947 gclog_or_tty->print_cr(" Desired free fraction %f",
948 desired_free_percentage);
949 gclog_or_tty->print_cr(" Maximum free fraction %f",
950 maximum_free_percentage);
951 gclog_or_tty->print_cr(" Capacity "SIZE_FORMAT, capacity()/1000);
952 gclog_or_tty->print_cr(" Desired capacity "SIZE_FORMAT,
953 desired_capacity/1000);
954 int prev_level = level() - 1;
955 if (prev_level >= 0) {
956 size_t prev_size = 0;
957 GenCollectedHeap* gch = GenCollectedHeap::heap();
958 Generation* prev_gen = gch->get_gen(prev_level);
959 prev_size = prev_gen->capacity();
960 gclog_or_tty->print_cr(" Younger gen size "SIZE_FORMAT,
961 prev_size/1000);
962 }
963 gclog_or_tty->print_cr(" unsafe_max_alloc_nogc "SIZE_FORMAT,
964 unsafe_max_alloc_nogc()/1000);
965 gclog_or_tty->print_cr(" contiguous available "SIZE_FORMAT,
966 contiguous_available()/1000);
967 gclog_or_tty->print_cr(" Expand by "SIZE_FORMAT" (bytes)",
968 expand_bytes);
969 }
970 // safe if expansion fails
971 expand(expand_bytes, 0, CMSExpansionCause::_satisfy_free_ratio);
972 if (PrintGCDetails && Verbose) {
973 gclog_or_tty->print_cr(" Expanded free fraction %f",
974 ((double) free()) / capacity());
975 }
976 } else {
977 size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage));
978 assert(desired_capacity <= capacity(), "invalid expansion size");
|