8184765: Dynamically resize SystemDictionary

Implemented dynamic resizing, which triggers when load factor is too high

Reviewed-by: coleenp, rehn
This commit is contained in:
Gerard Ziemski 2017-11-02 11:00:34 -05:00
parent e878b3272b
commit a043febf6f
14 changed files with 415 additions and 85 deletions

View file

@ -23,6 +23,7 @@
*/
#include "precompiled.hpp"
#include "classfile/classLoaderData.hpp"
#include "classfile/stringTable.hpp"
#include "classfile/symbolTable.hpp"
#include "classfile/systemDictionary.hpp"
@ -618,6 +619,14 @@ public:
ClassLoaderDataGraph::purge_if_needed();
event_safepoint_cleanup_task_commit(event, name);
}
if (!_subtasks.is_task_claimed(SafepointSynchronize::SAFEPOINT_CLEANUP_SYSTEM_DICTIONARY_RESIZE)) {
const char* name = "resizing system dictionaries";
EventSafepointCleanupTask event;
TraceTime timer(name, TRACETIME_LOG(Info, safepoint, cleanup));
ClassLoaderDataGraph::resize_if_needed();
event_safepoint_cleanup_task_commit(event, name);
}
_subtasks.all_tasks_completed(_num_workers);
}
};