6964458: Reimplement class meta-data storage to use native memory

Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
This commit is contained in:
Jon Masamitsu 2012-09-01 13:25:18 -04:00 committed by Coleen Phillimore
parent 36eee7c8c8
commit 5c58d27aac
853 changed files with 26124 additions and 82956 deletions

View file

@ -42,7 +42,8 @@ class CompileTask : public CHeapObj<mtCompiler> {
private:
Monitor* _lock;
uint _compile_id;
jobject _method;
Method* _method;
jobject _method_loader;
int _osr_bci;
bool _is_complete;
bool _is_success;
@ -54,7 +55,8 @@ class CompileTask : public CHeapObj<mtCompiler> {
// Fields used for logging why the compilation was initiated:
jlong _time_queued; // in units of os::elapsed_counter()
jobject _hot_method; // which method actually triggered this task
Method* _hot_method; // which method actually triggered this task
jobject _hot_method_loader;
int _hot_count; // information about its invocation counter
const char* _comment; // more info about the task
@ -70,7 +72,7 @@ class CompileTask : public CHeapObj<mtCompiler> {
void free();
int compile_id() const { return _compile_id; }
jobject method_handle() const { return _method; }
Method* method() const { return _method; }
int osr_bci() const { return _osr_bci; }
bool is_complete() const { return _is_complete; }
bool is_blocking() const { return _is_blocking; }
@ -98,7 +100,7 @@ class CompileTask : public CHeapObj<mtCompiler> {
void set_prev(CompileTask* prev) { _prev = prev; }
private:
static void print_compilation_impl(outputStream* st, methodOop method, int compile_id, int comp_level,
static void print_compilation_impl(outputStream* st, Method* method, int compile_id, int comp_level,
bool is_osr_method = false, int osr_bci = -1, bool is_blocking = false,
const char* msg = NULL, bool short_form = false);
@ -115,6 +117,9 @@ public:
print_inlining(tty, method, inline_level, bci, msg);
}
// Redefine Classes support
void mark_on_stack();
static void print_inline_indent(int inline_level, outputStream* st = tty);
void print();
@ -206,6 +211,9 @@ class CompileQueue : public CHeapObj<mtCompiler> {
bool is_empty() const { return _first == NULL; }
int size() const { return _size; }
// Redefine Classes support
void mark_on_stack();
void print();
};
@ -400,6 +408,9 @@ class CompileBroker: AllStatic {
return _perf_total_compilation != NULL ? _perf_total_compilation->get_value() : 0;
}
// Redefine Classes support
static void mark_on_stack();
// Print a detailed accounting of compilation time
static void print_times();