mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
8028993: Full collections with ParallelScavenge slower in JDK 8 compared to 7u40
Reducing the number of calls to follow_class_loader to speed up the marking phase. Also removed some unnecessary calls to adjust_klass. Reviewed-by: stefank, jmasa, mgerdin
This commit is contained in:
parent
5d5b1157d1
commit
5f4d0e9c25
8 changed files with 25 additions and 54 deletions
|
@ -1200,13 +1200,10 @@ class PSParallelCompact : AllStatic {
|
|||
T* p);
|
||||
template <class T> static inline void adjust_pointer(T* p);
|
||||
|
||||
static void follow_klass(ParCompactionManager* cm, Klass* klass);
|
||||
static void adjust_klass(ParCompactionManager* cm, Klass* klass);
|
||||
static inline void follow_klass(ParCompactionManager* cm, Klass* klass);
|
||||
|
||||
static void follow_class_loader(ParCompactionManager* cm,
|
||||
ClassLoaderData* klass);
|
||||
static void adjust_class_loader(ParCompactionManager* cm,
|
||||
ClassLoaderData* klass);
|
||||
|
||||
// Compaction support.
|
||||
// Return true if p is in the range [beg_addr, end_addr).
|
||||
|
@ -1380,6 +1377,11 @@ inline void PSParallelCompact::adjust_pointer(T* p) {
|
|||
}
|
||||
}
|
||||
|
||||
inline void PSParallelCompact::follow_klass(ParCompactionManager* cm, Klass* klass) {
|
||||
oop holder = klass->klass_holder();
|
||||
PSParallelCompact::mark_and_push(cm, &holder);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline void PSParallelCompact::KeepAliveClosure::do_oop_work(T* p) {
|
||||
mark_and_push(_compaction_manager, p);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue