mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-25 13:54:38 +02:00
6919886: Sweep CodeCache more aggressively to reduce its usage for CompileTheWorld
Add safepoint after CompileTheWorldSafepointInterval (100) compilations and do full sweep of CodeCache each time. Reviewed-by: never
This commit is contained in:
parent
bac125984c
commit
f557cc8bd0
3 changed files with 20 additions and 0 deletions
|
@ -1249,6 +1249,7 @@ void ClassLoader::compile_the_world() {
|
|||
}
|
||||
|
||||
int ClassLoader::_compile_the_world_counter = 0;
|
||||
static int _codecache_sweep_counter = 0;
|
||||
|
||||
void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) {
|
||||
int len = (int)strlen(name);
|
||||
|
@ -1293,6 +1294,13 @@ void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) {
|
|||
for (int n = 0; n < k->methods()->length(); n++) {
|
||||
methodHandle m (THREAD, methodOop(k->methods()->obj_at(n)));
|
||||
if (CompilationPolicy::canBeCompiled(m)) {
|
||||
|
||||
if (++_codecache_sweep_counter == CompileTheWorldSafepointInterval) {
|
||||
// Give sweeper a chance to keep up with CTW
|
||||
VM_ForceSafepoint op;
|
||||
VMThread::execute(&op);
|
||||
_codecache_sweep_counter = 0;
|
||||
}
|
||||
// Force compilation
|
||||
CompileBroker::compile_method(m, InvocationEntryBci,
|
||||
methodHandle(), 0, "CTW", THREAD);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue