Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/sharedHeap.cpp @ 10361:eda078b01c65
8015268: NPG: 2.5% regression in young GC times on CRM Sales Opty
Summary: Split SystemDictionary and ClassLoaderDataGraph root processing to help load balancing.
Reviewed-by: tschatzl, johnc
author | stefank |
---|---|
date | Mon, 27 May 2013 15:22:59 +0200 |
parents | 001ec9515f84 |
children | 01522ca68fc7 |
comparison
equal
deleted
inserted
replaced
10360:0886b99a4d1b | 10361:eda078b01c65 |
---|---|
43 SH_PS_JNIHandles_oops_do, | 43 SH_PS_JNIHandles_oops_do, |
44 SH_PS_ObjectSynchronizer_oops_do, | 44 SH_PS_ObjectSynchronizer_oops_do, |
45 SH_PS_FlatProfiler_oops_do, | 45 SH_PS_FlatProfiler_oops_do, |
46 SH_PS_Management_oops_do, | 46 SH_PS_Management_oops_do, |
47 SH_PS_SystemDictionary_oops_do, | 47 SH_PS_SystemDictionary_oops_do, |
48 SH_PS_ClassLoaderDataGraph_oops_do, | |
48 SH_PS_jvmti_oops_do, | 49 SH_PS_jvmti_oops_do, |
49 SH_PS_StringTable_oops_do, | 50 SH_PS_StringTable_oops_do, |
50 SH_PS_CodeCache_oops_do, | 51 SH_PS_CodeCache_oops_do, |
51 // Leave this one last. | 52 // Leave this one last. |
52 SH_PS_NumElements | 53 SH_PS_NumElements |
171 JvmtiExport::oops_do(roots); | 172 JvmtiExport::oops_do(roots); |
172 | 173 |
173 if (!_process_strong_tasks->is_task_claimed(SH_PS_SystemDictionary_oops_do)) { | 174 if (!_process_strong_tasks->is_task_claimed(SH_PS_SystemDictionary_oops_do)) { |
174 if (so & SO_AllClasses) { | 175 if (so & SO_AllClasses) { |
175 SystemDictionary::oops_do(roots); | 176 SystemDictionary::oops_do(roots); |
177 } else if (so & SO_SystemClasses) { | |
178 SystemDictionary::always_strong_oops_do(roots); | |
179 } else { | |
180 fatal("We should always have selected either SO_AllClasses or SO_SystemClasses"); | |
181 } | |
182 } | |
183 | |
184 if (!_process_strong_tasks->is_task_claimed(SH_PS_ClassLoaderDataGraph_oops_do)) { | |
185 if (so & SO_AllClasses) { | |
176 ClassLoaderDataGraph::oops_do(roots, klass_closure, !is_scavenging); | 186 ClassLoaderDataGraph::oops_do(roots, klass_closure, !is_scavenging); |
177 } else if (so & SO_SystemClasses) { | 187 } else if (so & SO_SystemClasses) { |
178 SystemDictionary::always_strong_oops_do(roots); | |
179 ClassLoaderDataGraph::always_strong_oops_do(roots, klass_closure, !is_scavenging); | 188 ClassLoaderDataGraph::always_strong_oops_do(roots, klass_closure, !is_scavenging); |
180 } else { | |
181 fatal("We should always have selected either SO_AllClasses or SO_SystemClasses"); | |
182 } | 189 } |
183 } | 190 } |
184 | 191 |
185 if (!_process_strong_tasks->is_task_claimed(SH_PS_StringTable_oops_do)) { | 192 if (!_process_strong_tasks->is_task_claimed(SH_PS_StringTable_oops_do)) { |
186 if (so & SO_Strings) { | 193 if (so & SO_Strings) { |