comparison src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp @ 14194:d41bd7e90661

8027364: PSScavenge accounts too large code section to StringTable unlink Summary: Correct timing measurement by modifying the scope of the GCTraceTime instance. Reviewed-by: ysr, tamao Contributed-by: Jeremy Manson <jeremymanson@google.com>
author tschatzl
date Tue, 07 Jan 2014 13:31:33 +0100
parents 86e6d691f2e1
children 63a4eb8bcd23 a034dc5e910b
comparison
equal deleted inserted replaced
14193:dd1b266713ea 14194:d41bd7e90661
1 /* 1 /*
2 * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
464 } else { 464 } else {
465 reference_processor()->enqueue_discovered_references(NULL); 465 reference_processor()->enqueue_discovered_references(NULL);
466 } 466 }
467 } 467 }
468 468
469 GCTraceTime tm("StringTable", false, false, &_gc_timer); 469 {
470 // Unlink any dead interned Strings and process the remaining live ones. 470 GCTraceTime tm("StringTable", false, false, &_gc_timer);
471 PSScavengeRootsClosure root_closure(promotion_manager); 471 // Unlink any dead interned Strings and process the remaining live ones.
472 StringTable::unlink_or_oops_do(&_is_alive_closure, &root_closure); 472 PSScavengeRootsClosure root_closure(promotion_manager);
473 StringTable::unlink_or_oops_do(&_is_alive_closure, &root_closure);
474 }
473 475
474 // Finally, flush the promotion_manager's labs, and deallocate its stacks. 476 // Finally, flush the promotion_manager's labs, and deallocate its stacks.
475 promotion_failure_occurred = PSPromotionManager::post_scavenge(_gc_tracer); 477 promotion_failure_occurred = PSPromotionManager::post_scavenge(_gc_tracer);
476 if (promotion_failure_occurred) { 478 if (promotion_failure_occurred) {
477 clean_up_failed_promotion(); 479 clean_up_failed_promotion();