8035735: Metaspace::contains become extremely slow in some cases
Call is_metadata instead which does less work for the call in debugInfo.hpp which is called for all compiled code stack frames. Reviewed-by: jmasa, dcubed
This commit is contained in:
parent
4482a30c61
commit
1a95f3a409
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -273,8 +273,8 @@ class DebugInfoReadStream : public CompressedReadStream {
|
|||||||
}
|
}
|
||||||
Method* read_method() {
|
Method* read_method() {
|
||||||
Method* o = (Method*)(code()->metadata_at(read_int()));
|
Method* o = (Method*)(code()->metadata_at(read_int()));
|
||||||
assert(o == NULL ||
|
// is_metadata() is a faster check than is_metaspace_object()
|
||||||
o->is_metaspace_object(), "meta data only");
|
assert(o == NULL || o->is_metadata(), "meta data only");
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
ScopeValue* read_object_value();
|
ScopeValue* read_object_value();
|
||||||
|
@ -42,6 +42,7 @@ class Metadata : public MetaspaceObj {
|
|||||||
// Rehashing support for tables containing pointers to this
|
// Rehashing support for tables containing pointers to this
|
||||||
unsigned int new_hash(juint seed) { ShouldNotReachHere(); return 0; }
|
unsigned int new_hash(juint seed) { ShouldNotReachHere(); return 0; }
|
||||||
|
|
||||||
|
virtual bool is_metadata() const volatile { return true; }
|
||||||
virtual bool is_klass() const volatile { return false; }
|
virtual bool is_klass() const volatile { return false; }
|
||||||
virtual bool is_method() const volatile { return false; }
|
virtual bool is_method() const volatile { return false; }
|
||||||
virtual bool is_methodData() const volatile { return false; }
|
virtual bool is_methodData() const volatile { return false; }
|
||||||
|
Loading…
Reference in New Issue
Block a user