1055 CodeCache::gc_epilogue(); |
1055 CodeCache::gc_epilogue(); |
1056 |
1056 |
1057 COMPILER2_PRESENT(DerivedPointerTable::update_pointers()); |
1057 COMPILER2_PRESENT(DerivedPointerTable::update_pointers()); |
1058 |
1058 |
1059 ref_processor()->enqueue_discovered_references(NULL); |
1059 ref_processor()->enqueue_discovered_references(NULL); |
|
1060 |
|
1061 if (ZapUnusedHeapArea) { |
|
1062 heap->gen_mangle_unused_area(); |
|
1063 } |
1060 |
1064 |
1061 // Update time of last GC |
1065 // Update time of last GC |
1062 reset_millis_since_last_gc(); |
1066 reset_millis_since_last_gc(); |
1063 } |
1067 } |
1064 |
1068 |
1957 PSYoungGen* young_gen = heap->young_gen(); |
1961 PSYoungGen* young_gen = heap->young_gen(); |
1958 PSOldGen* old_gen = heap->old_gen(); |
1962 PSOldGen* old_gen = heap->old_gen(); |
1959 PSPermGen* perm_gen = heap->perm_gen(); |
1963 PSPermGen* perm_gen = heap->perm_gen(); |
1960 PSAdaptiveSizePolicy* size_policy = heap->size_policy(); |
1964 PSAdaptiveSizePolicy* size_policy = heap->size_policy(); |
1961 |
1965 |
|
1966 if (ZapUnusedHeapArea) { |
|
1967 // Save information needed to minimize mangling |
|
1968 heap->record_gen_tops_before_GC(); |
|
1969 } |
|
1970 |
1962 _print_phases = PrintGCDetails && PrintParallelOldGCPhaseTimes; |
1971 _print_phases = PrintGCDetails && PrintParallelOldGCPhaseTimes; |
1963 |
1972 |
1964 // Make sure data structures are sane, make the heap parsable, and do other |
1973 // Make sure data structures are sane, make the heap parsable, and do other |
1965 // miscellaneous bookkeeping. |
1974 // miscellaneous bookkeeping. |
1966 PreGCValues pre_gc_values; |
1975 PreGCValues pre_gc_values; |
2125 young_gen->to_space()->capacity_in_bytes(), |
2134 young_gen->to_space()->capacity_in_bytes(), |
2126 "Sizes of space in young gen are out-of-bounds"); |
2135 "Sizes of space in young gen are out-of-bounds"); |
2127 size_t max_eden_size = young_gen->max_size() - |
2136 size_t max_eden_size = young_gen->max_size() - |
2128 young_gen->from_space()->capacity_in_bytes() - |
2137 young_gen->from_space()->capacity_in_bytes() - |
2129 young_gen->to_space()->capacity_in_bytes(); |
2138 young_gen->to_space()->capacity_in_bytes(); |
2130 size_policy->compute_generation_free_space(young_gen->used_in_bytes(), |
2139 size_policy->compute_generation_free_space( |
2131 young_gen->eden_space()->used_in_bytes(), |
2140 young_gen->used_in_bytes(), |
2132 old_gen->used_in_bytes(), |
2141 young_gen->eden_space()->used_in_bytes(), |
2133 perm_gen->used_in_bytes(), |
2142 old_gen->used_in_bytes(), |
2134 young_gen->eden_space()->capacity_in_bytes(), |
2143 perm_gen->used_in_bytes(), |
2135 old_gen->max_gen_size(), |
2144 young_gen->eden_space()->capacity_in_bytes(), |
2136 max_eden_size, |
2145 old_gen->max_gen_size(), |
2137 true /* full gc*/, |
2146 max_eden_size, |
2138 gc_cause); |
2147 true /* full gc*/, |
2139 |
2148 gc_cause); |
2140 heap->resize_old_gen(size_policy->calculated_old_free_size_in_bytes()); |
2149 |
|
2150 heap->resize_old_gen( |
|
2151 size_policy->calculated_old_free_size_in_bytes()); |
2141 |
2152 |
2142 // Don't resize the young generation at an major collection. A |
2153 // Don't resize the young generation at an major collection. A |
2143 // desired young generation size may have been calculated but |
2154 // desired young generation size may have been calculated but |
2144 // resizing the young generation complicates the code because the |
2155 // resizing the young generation complicates the code because the |
2145 // resizing of the old generation may have moved the boundary |
2156 // resizing of the old generation may have moved the boundary |
2206 // Re-verify object start arrays |
2217 // Re-verify object start arrays |
2207 if (VerifyObjectStartArray && |
2218 if (VerifyObjectStartArray && |
2208 VerifyAfterGC) { |
2219 VerifyAfterGC) { |
2209 old_gen->verify_object_start_array(); |
2220 old_gen->verify_object_start_array(); |
2210 perm_gen->verify_object_start_array(); |
2221 perm_gen->verify_object_start_array(); |
|
2222 } |
|
2223 |
|
2224 if (ZapUnusedHeapArea) { |
|
2225 old_gen->object_space()->check_mangled_unused_area_complete(); |
|
2226 perm_gen->object_space()->check_mangled_unused_area_complete(); |
2211 } |
2227 } |
2212 |
2228 |
2213 NOT_PRODUCT(ref_processor()->verify_no_references_recorded()); |
2229 NOT_PRODUCT(ref_processor()->verify_no_references_recorded()); |
2214 |
2230 |
2215 collection_exit.update(); |
2231 collection_exit.update(); |