mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
8015422: Large performance hit when the StringTable is walked twice in Parallel Scavenge
Combine the calls to StringTable::unlink and StringTable::oops_do in Parallel Scavenge. Reviewed-by: pliden, coleenp
This commit is contained in:
parent
8b7d3c5d3b
commit
c13149ab8d
3 changed files with 11 additions and 7 deletions
|
@ -450,11 +450,9 @@ bool PSScavenge::invoke_no_policy() {
|
|||
reference_processor()->enqueue_discovered_references(NULL);
|
||||
}
|
||||
|
||||
// Unlink any dead interned Strings
|
||||
StringTable::unlink(&_is_alive_closure);
|
||||
// Process the remaining live ones
|
||||
PSScavengeRootsClosure root_closure(promotion_manager);
|
||||
StringTable::oops_do(&root_closure);
|
||||
// Unlink any dead interned Strings and process the remaining live ones.
|
||||
PSScavengeRootsClosure root_closure(promotion_manager);
|
||||
StringTable::unlink_or_oops_do(&_is_alive_closure, &root_closure);
|
||||
|
||||
// Finally, flush the promotion_manager's labs, and deallocate its stacks.
|
||||
PSPromotionManager::post_scavenge();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue