mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8010862: The Method counter fields used for profiling can be allocated lazily
Allocate the method's profiling related metadata until they are needed. Reviewed-by: coleenp, roland
This commit is contained in:
parent
0afa77628c
commit
56370657b9
34 changed files with 773 additions and 295 deletions
|
@ -77,6 +77,7 @@
|
|||
#include "oops/klass.hpp"
|
||||
#include "oops/markOop.hpp"
|
||||
#include "oops/methodData.hpp"
|
||||
#include "oops/methodCounters.hpp"
|
||||
#include "oops/method.hpp"
|
||||
#include "oops/objArrayKlass.hpp"
|
||||
#include "oops/objArrayOop.hpp"
|
||||
|
@ -348,16 +349,17 @@ typedef BinaryTreeDictionary<Metablock, FreeList> MetablockTreeDictionary;
|
|||
nonstatic_field(MethodData, _arg_local, intx) \
|
||||
nonstatic_field(MethodData, _arg_stack, intx) \
|
||||
nonstatic_field(MethodData, _arg_returned, intx) \
|
||||
nonstatic_field(Method, _constMethod, ConstMethod*) \
|
||||
nonstatic_field(Method, _method_data, MethodData*) \
|
||||
nonstatic_field(Method, _interpreter_invocation_count, int) \
|
||||
nonstatic_field(MethodCounters, _interpreter_invocation_count, int) \
|
||||
nonstatic_field(MethodCounters, _interpreter_throwout_count, u2) \
|
||||
nonstatic_field(MethodCounters, _number_of_breakpoints, u2) \
|
||||
nonstatic_field(MethodCounters, _invocation_counter, InvocationCounter) \
|
||||
nonstatic_field(MethodCounters, _backedge_counter, InvocationCounter) \
|
||||
nonstatic_field(Method, _constMethod, ConstMethod*) \
|
||||
nonstatic_field(Method, _method_data, MethodData*) \
|
||||
nonstatic_field(Method, _method_counters, MethodCounters*) \
|
||||
nonstatic_field(Method, _access_flags, AccessFlags) \
|
||||
nonstatic_field(Method, _vtable_index, int) \
|
||||
nonstatic_field(Method, _method_size, u2) \
|
||||
nonstatic_field(Method, _interpreter_throwout_count, u2) \
|
||||
nonstatic_field(Method, _number_of_breakpoints, u2) \
|
||||
nonstatic_field(Method, _invocation_counter, InvocationCounter) \
|
||||
nonstatic_field(Method, _backedge_counter, InvocationCounter) \
|
||||
nonproduct_nonstatic_field(Method, _compiled_invocation_count, int) \
|
||||
volatile_nonstatic_field(Method, _code, nmethod*) \
|
||||
nonstatic_field(Method, _i2i_entry, address) \
|
||||
|
@ -1381,6 +1383,7 @@ typedef BinaryTreeDictionary<Metablock, FreeList> MetablockTreeDictionary;
|
|||
declare_type(ConstantPoolCache, MetaspaceObj) \
|
||||
declare_type(MethodData, Metadata) \
|
||||
declare_type(Method, Metadata) \
|
||||
declare_type(MethodCounters, MetaspaceObj) \
|
||||
declare_type(ConstMethod, MetaspaceObj) \
|
||||
\
|
||||
declare_toplevel_type(Symbol) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue