Mercurial > hg > truffle
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(); |