src/share/vm/runtime/sweeper.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hs-comp Cdiff src/share/vm/runtime/sweeper.cpp
src/share/vm/runtime/sweeper.cpp
Print this page
*** 614,629 ****
}
// The stack-scanning low-cost detection may not see the method was used (which can happen for
// flat profiles). Check the age counter for possible data.
if (UseCodeAging && make_not_entrant && (nm->is_compiled_by_c2() || nm->is_compiled_by_c1())) {
! MethodCounters* mc = nm->method()->method_counters();
! if (mc == NULL) {
! // Sometimes we can get here without MethodCounters. For example if we run with -Xcomp.
! // Try to allocate them.
! mc = nm->method()->get_method_counters(Thread::current());
! }
if (mc != NULL) {
// Snapshot the value as it's changed concurrently
int age = mc->nmethod_age();
if (MethodCounters::is_nmethod_hot(age)) {
// The method has gone through flushing, and it became relatively hot that it deopted
--- 614,624 ----
}
// The stack-scanning low-cost detection may not see the method was used (which can happen for
// flat profiles). Check the age counter for possible data.
if (UseCodeAging && make_not_entrant && (nm->is_compiled_by_c2() || nm->is_compiled_by_c1())) {
! MethodCounters* mc = nm->method()->get_method_counters(Thread::current());
if (mc != NULL) {
// Snapshot the value as it's changed concurrently
int age = mc->nmethod_age();
if (MethodCounters::is_nmethod_hot(age)) {
// The method has gone through flushing, and it became relatively hot that it deopted
src/share/vm/runtime/sweeper.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File