< prev index next >

src/share/vm/gc/g1/g1CollectionSet.cpp

Print this page
rev 11942 : imported patch 8165313-sort-collection-set-at-end
rev 11943 : [mq]: 8165313-mikael-review1

*** 30,39 **** --- 30,40 ---- #include "gc/g1/heapRegion.inline.hpp" #include "gc/g1/heapRegionRemSet.hpp" #include "gc/g1/heapRegionSet.hpp" #include "logging/logStream.hpp" #include "utilities/debug.hpp" + #include "utilities/quickSort.hpp" G1CollectorState* G1CollectionSet::collector_state() { return _g1->collector_state(); }
*** 394,409 **** phase_times()->record_young_cset_choice_time_ms((young_end_time_sec - young_start_time_sec) * 1000.0); return time_remaining_ms; } ! static int compare_region_idx(const void *a, const void*b) { ! uint const first = *(uint*)a; ! uint const second = *(uint*)b; ! assert(first != second, "Two regions with the same index %u in the collection set", first); ! if (first > second) { return 1; } else { return -1; } } --- 395,409 ---- phase_times()->record_young_cset_choice_time_ms((young_end_time_sec - young_start_time_sec) * 1000.0); return time_remaining_ms; } ! static int compare_region_idx(const uint a, const uint b) { ! if (a > b) { return 1; + } else if (a == b) { + return 0; } else { return -1; } }
*** 503,513 **** old_region_length(), predicted_old_time_ms, time_remaining_ms); double non_young_end_time_sec = os::elapsedTime(); phase_times()->record_non_young_cset_choice_time_ms((non_young_end_time_sec - non_young_start_time_sec) * 1000.0); ! qsort(_collection_set_regions, _collection_set_cur_length, sizeof(uint), compare_region_idx); } #ifdef ASSERT class G1VerifyYoungCSetIndicesClosure : public HeapRegionClosure { private: --- 503,513 ---- old_region_length(), predicted_old_time_ms, time_remaining_ms); double non_young_end_time_sec = os::elapsedTime(); phase_times()->record_non_young_cset_choice_time_ms((non_young_end_time_sec - non_young_start_time_sec) * 1000.0); ! QuickSort::sort<uint>(_collection_set_regions, (int)_collection_set_cur_length, compare_region_idx, true); } #ifdef ASSERT class G1VerifyYoungCSetIndicesClosure : public HeapRegionClosure { private:
< prev index next >