mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8199406: Performance drop with Java JDK 1.8.0_162-b32
Improve the nmethod unloading times by optimizing the search for an itable stub in VtableStubs array Reviewed-by: kvn, coleenp, tschatzl
This commit is contained in:
parent
6bdeaad21a
commit
25fbd2ff16
7 changed files with 71 additions and 37 deletions
|
@ -58,6 +58,7 @@ struct CodeBlobType {
|
|||
// RuntimeBlob : Non-compiled method code; generated glue code
|
||||
// BufferBlob : Used for non-relocatable code such as interpreter, stubroutines, etc.
|
||||
// AdapterBlob : Used to hold C2I/I2C adapters
|
||||
// VtableBlob : Used for holding vtable chunks
|
||||
// MethodHandlesAdapterBlob : Used to hold MethodHandles adapters
|
||||
// RuntimeStub : Call to VM runtime methods
|
||||
// SingletonBlob : Super-class for all blobs that exist in only one instance
|
||||
|
@ -132,6 +133,7 @@ public:
|
|||
virtual bool is_exception_stub() const { return false; }
|
||||
virtual bool is_safepoint_stub() const { return false; }
|
||||
virtual bool is_adapter_blob() const { return false; }
|
||||
virtual bool is_vtable_blob() const { return false; }
|
||||
virtual bool is_method_handles_adapter_blob() const { return false; }
|
||||
virtual bool is_aot() const { return false; }
|
||||
virtual bool is_compiled() const { return false; }
|
||||
|
@ -380,6 +382,7 @@ class WhiteBox;
|
|||
class BufferBlob: public RuntimeBlob {
|
||||
friend class VMStructs;
|
||||
friend class AdapterBlob;
|
||||
friend class VtableBlob;
|
||||
friend class MethodHandlesAdapterBlob;
|
||||
friend class WhiteBox;
|
||||
|
||||
|
@ -425,6 +428,18 @@ public:
|
|||
virtual bool is_adapter_blob() const { return true; }
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
class VtableBlob: public BufferBlob {
|
||||
private:
|
||||
VtableBlob(const char*, int);
|
||||
|
||||
public:
|
||||
// Creation
|
||||
static VtableBlob* create(const char* name, int buffer_size);
|
||||
|
||||
// Typing
|
||||
virtual bool is_vtable_blob() const { return true; }
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// MethodHandlesAdapterBlob: used to hold MethodHandles adapters
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue