Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
b0aebc95
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b0aebc95
编写于
2月 14, 2013
作者:
B
brutisso
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
4b2183fb
ab5307ee
变更
11
显示空白变更内容
内联
并排
Showing
11 changed file
with
89 addition
and
62 deletion
+89
-62
src/cpu/zero/vm/shark_globals_zero.hpp
src/cpu/zero/vm/shark_globals_zero.hpp
+2
-2
src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp
src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp
+2
-2
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
...ion/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+2
-2
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
...ion/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
+2
-2
src/share/vm/gc_implementation/g1/concurrentMark.cpp
src/share/vm/gc_implementation/g1/concurrentMark.cpp
+28
-7
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+10
-25
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
+4
-4
src/share/vm/gc_implementation/g1/g1_globals.hpp
src/share/vm/gc_implementation/g1/g1_globals.hpp
+0
-3
src/share/vm/memory/metaspace.cpp
src/share/vm/memory/metaspace.cpp
+5
-5
src/share/vm/runtime/arguments.cpp
src/share/vm/runtime/arguments.cpp
+20
-2
src/share/vm/runtime/globals.hpp
src/share/vm/runtime/globals.hpp
+14
-8
未找到文件。
src/cpu/zero/vm/shark_globals_zero.hpp
浏览文件 @
b0aebc95
/*
/*
* Copyright (c) 2000, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009, 2010 Red Hat, Inc.
* Copyright 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
...
@@ -51,7 +51,7 @@ define_pd_global(intx, Tier4BackEdgeThreshold, 100000);
...
@@ -51,7 +51,7 @@ define_pd_global(intx, Tier4BackEdgeThreshold, 100000);
define_pd_global
(
intx
,
OnStackReplacePercentage
,
933
);
define_pd_global
(
intx
,
OnStackReplacePercentage
,
933
);
define_pd_global
(
intx
,
FreqInlineSize
,
325
);
define_pd_global
(
intx
,
FreqInlineSize
,
325
);
define_pd_global
(
intx
,
InlineSmallCode
,
1000
);
define_pd_global
(
intx
,
InlineSmallCode
,
1000
);
define_pd_global
(
intx
,
NewRatio
,
12
);
define_pd_global
(
uintx
,
NewRatio
,
12
);
define_pd_global
(
intx
,
NewSizeThreadIncrease
,
4
*
K
);
define_pd_global
(
intx
,
NewSizeThreadIncrease
,
4
*
K
);
define_pd_global
(
intx
,
InitialCodeCacheSize
,
160
*
K
);
define_pd_global
(
intx
,
InitialCodeCacheSize
,
160
*
K
);
define_pd_global
(
intx
,
ReservedCodeCacheSize
,
32
*
M
);
define_pd_global
(
intx
,
ReservedCodeCacheSize
,
32
*
M
);
...
...
src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp
浏览文件 @
b0aebc95
/*
/*
* Copyright (c) 2000, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -42,7 +42,7 @@ define_pd_global(intx, VMThreadStackSize, 512);
...
@@ -42,7 +42,7 @@ define_pd_global(intx, VMThreadStackSize, 512);
#endif // AMD64
#endif // AMD64
define_pd_global
(
intx
,
CompilerThreadStackSize
,
0
);
define_pd_global
(
intx
,
CompilerThreadStackSize
,
0
);
define_pd_global
(
intx
,
SurvivorRatio
,
8
);
define_pd_global
(
uintx
,
SurvivorRatio
,
8
);
define_pd_global
(
uintx
,
JVMInvokeMethodSlack
,
8192
);
define_pd_global
(
uintx
,
JVMInvokeMethodSlack
,
8192
);
...
...
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
浏览文件 @
b0aebc95
...
@@ -274,8 +274,8 @@ ConcurrentMarkSweepGeneration::ConcurrentMarkSweepGeneration(
...
@@ -274,8 +274,8 @@ ConcurrentMarkSweepGeneration::ConcurrentMarkSweepGeneration(
// end of a collection, we let CMSTriggerRatio of the (purported) free
// end of a collection, we let CMSTriggerRatio of the (purported) free
// space be allocated before initiating a new collection cycle.
// space be allocated before initiating a new collection cycle.
//
//
void
ConcurrentMarkSweepGeneration
::
init_initiating_occupancy
(
intx
io
,
intx
tr
)
{
void
ConcurrentMarkSweepGeneration
::
init_initiating_occupancy
(
intx
io
,
u
intx
tr
)
{
assert
(
io
<=
100
&&
tr
>=
0
&&
tr
<=
100
,
"Check the arguments"
);
assert
(
io
<=
100
&&
tr
<=
100
,
"Check the arguments"
);
if
(
io
>=
0
)
{
if
(
io
>=
0
)
{
_initiating_occupancy
=
(
double
)
io
/
100.0
;
_initiating_occupancy
=
(
double
)
io
/
100.0
;
}
else
{
}
else
{
...
...
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
浏览文件 @
b0aebc95
/*
/*
* Copyright (c) 2001, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -1093,7 +1093,7 @@ class ConcurrentMarkSweepGeneration: public CardGeneration {
...
@@ -1093,7 +1093,7 @@ class ConcurrentMarkSweepGeneration: public CardGeneration {
// getter and initializer for _initiating_occupancy field.
// getter and initializer for _initiating_occupancy field.
double
initiating_occupancy
()
const
{
return
_initiating_occupancy
;
}
double
initiating_occupancy
()
const
{
return
_initiating_occupancy
;
}
void
init_initiating_occupancy
(
intx
io
,
intx
tr
);
void
init_initiating_occupancy
(
intx
io
,
u
intx
tr
);
public:
public:
ConcurrentMarkSweepGeneration
(
ReservedSpace
rs
,
size_t
initial_byte_size
,
ConcurrentMarkSweepGeneration
(
ReservedSpace
rs
,
size_t
initial_byte_size
,
...
...
src/share/vm/gc_implementation/g1/concurrentMark.cpp
浏览文件 @
b0aebc95
...
@@ -4062,15 +4062,36 @@ void CMTask::do_marking_step(double time_target_ms,
...
@@ -4062,15 +4062,36 @@ void CMTask::do_marking_step(double time_target_ms,
if
(
_cm
->
verbose_low
())
{
if
(
_cm
->
verbose_low
())
{
gclog_or_tty
->
print_cr
(
"[%u] we're scanning part "
gclog_or_tty
->
print_cr
(
"[%u] we're scanning part "
"["
PTR_FORMAT
", "
PTR_FORMAT
") "
"["
PTR_FORMAT
", "
PTR_FORMAT
") "
"of region "
PTR_FORMAT
,
"of region "
HR_FORMAT
,
_worker_id
,
_finger
,
_region_limit
,
_curr_region
);
_worker_id
,
_finger
,
_region_limit
,
}
HR_FORMAT_PARAMS
(
_curr_region
));
}
// Let's iterate over the bitmap of the part of the
// region that is left.
assert
(
!
_curr_region
->
isHumongous
()
||
mr
.
start
()
==
_curr_region
->
bottom
(),
if
(
mr
.
is_empty
()
||
_nextMarkBitMap
->
iterate
(
&
bitmap_closure
,
mr
))
{
"humongous regions should go around loop once only"
);
// We successfully completed iterating over the region. Now,
// let's give up the region.
// Some special cases:
// If the memory region is empty, we can just give up the region.
// If the current region is humongous then we only need to check
// the bitmap for the bit associated with the start of the object,
// scan the object if it's live, and give up the region.
// Otherwise, let's iterate over the bitmap of the part of the region
// that is left.
// If the iteration is successful, give up the region.
if
(
mr
.
is_empty
())
{
giveup_current_region
();
regular_clock_call
();
}
else
if
(
_curr_region
->
isHumongous
()
&&
mr
.
start
()
==
_curr_region
->
bottom
())
{
if
(
_nextMarkBitMap
->
isMarked
(
mr
.
start
()))
{
// The object is marked - apply the closure
BitMap
::
idx_t
offset
=
_nextMarkBitMap
->
heapWordToOffset
(
mr
.
start
());
bitmap_closure
.
do_bit
(
offset
);
}
// Even if this task aborted while scanning the humongous object
// we can (and should) give up the current region.
giveup_current_region
();
regular_clock_call
();
}
else
if
(
_nextMarkBitMap
->
iterate
(
&
bitmap_closure
,
mr
))
{
giveup_current_region
();
giveup_current_region
();
regular_clock_call
();
regular_clock_call
();
}
else
{
}
else
{
...
...
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
浏览文件 @
b0aebc95
...
@@ -1893,7 +1893,6 @@ G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) :
...
@@ -1893,7 +1893,6 @@ G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) :
_ref_processor_stw
(
NULL
),
_ref_processor_stw
(
NULL
),
_process_strong_tasks
(
new
SubTasksDone
(
G1H_PS_NumElements
)),
_process_strong_tasks
(
new
SubTasksDone
(
G1H_PS_NumElements
)),
_bot_shared
(
NULL
),
_bot_shared
(
NULL
),
_objs_with_preserved_marks
(
NULL
),
_preserved_marks_of_objs
(
NULL
),
_evac_failure_scan_stack
(
NULL
)
,
_evac_failure_scan_stack
(
NULL
)
,
_mark_in_progress
(
false
),
_mark_in_progress
(
false
),
_cg1r
(
NULL
),
_summary_bytes_used
(
0
),
_cg1r
(
NULL
),
_summary_bytes_used
(
0
),
...
@@ -4215,22 +4214,15 @@ void G1CollectedHeap::remove_self_forwarding_pointers() {
...
@@ -4215,22 +4214,15 @@ void G1CollectedHeap::remove_self_forwarding_pointers() {
assert
(
check_cset_heap_region_claim_values
(
HeapRegion
::
InitialClaimValue
),
"sanity"
);
assert
(
check_cset_heap_region_claim_values
(
HeapRegion
::
InitialClaimValue
),
"sanity"
);
// Now restore saved marks, if any.
// Now restore saved marks, if any.
if
(
_objs_with_preserved_marks
!=
NULL
)
{
assert
(
_objs_with_preserved_marks
.
size
()
==
assert
(
_preserved_marks_of_objs
!=
NULL
,
"Both or none."
);
_preserved_marks_of_objs
.
size
(),
"Both or none."
);
guarantee
(
_objs_with_preserved_marks
->
length
()
==
while
(
!
_objs_with_preserved_marks
.
is_empty
())
{
_preserved_marks_of_objs
->
length
(),
"Both or none."
);
oop
obj
=
_objs_with_preserved_marks
.
pop
();
for
(
int
i
=
0
;
i
<
_objs_with_preserved_marks
->
length
();
i
++
)
{
markOop
m
=
_preserved_marks_of_objs
.
pop
();
oop
obj
=
_objs_with_preserved_marks
->
at
(
i
);
markOop
m
=
_preserved_marks_of_objs
->
at
(
i
);
obj
->
set_mark
(
m
);
obj
->
set_mark
(
m
);
}
}
_objs_with_preserved_marks
.
clear
(
true
);
// Delete the preserved marks growable arrays (allocated on the C heap).
_preserved_marks_of_objs
.
clear
(
true
);
delete
_objs_with_preserved_marks
;
delete
_preserved_marks_of_objs
;
_objs_with_preserved_marks
=
NULL
;
_preserved_marks_of_objs
=
NULL
;
}
}
}
void
G1CollectedHeap
::
push_on_evac_failure_scan_stack
(
oop
obj
)
{
void
G1CollectedHeap
::
push_on_evac_failure_scan_stack
(
oop
obj
)
{
...
@@ -4313,15 +4305,8 @@ void G1CollectedHeap::preserve_mark_if_necessary(oop obj, markOop m) {
...
@@ -4313,15 +4305,8 @@ void G1CollectedHeap::preserve_mark_if_necessary(oop obj, markOop m) {
// We want to call the "for_promotion_failure" version only in the
// We want to call the "for_promotion_failure" version only in the
// case of a promotion failure.
// case of a promotion failure.
if
(
m
->
must_be_preserved_for_promotion_failure
(
obj
))
{
if
(
m
->
must_be_preserved_for_promotion_failure
(
obj
))
{
if
(
_objs_with_preserved_marks
==
NULL
)
{
_objs_with_preserved_marks
.
push
(
obj
);
assert
(
_preserved_marks_of_objs
==
NULL
,
"Both or none."
);
_preserved_marks_of_objs
.
push
(
m
);
_objs_with_preserved_marks
=
new
(
ResourceObj
::
C_HEAP
,
mtGC
)
GrowableArray
<
oop
>
(
40
,
true
);
_preserved_marks_of_objs
=
new
(
ResourceObj
::
C_HEAP
,
mtGC
)
GrowableArray
<
markOop
>
(
40
,
true
);
}
_objs_with_preserved_marks
->
push
(
obj
);
_preserved_marks_of_objs
->
push
(
m
);
}
}
}
}
...
...
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
浏览文件 @
b0aebc95
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
#include "memory/barrierSet.hpp"
#include "memory/barrierSet.hpp"
#include "memory/memRegion.hpp"
#include "memory/memRegion.hpp"
#include "memory/sharedHeap.hpp"
#include "memory/sharedHeap.hpp"
#include "utilities/stack.hpp"
// A "G1CollectedHeap" is an implementation of a java heap for HotSpot.
// A "G1CollectedHeap" is an implementation of a java heap for HotSpot.
// It uses the "Garbage First" heap organization and algorithm, which
// It uses the "Garbage First" heap organization and algorithm, which
...
@@ -877,10 +878,9 @@ protected:
...
@@ -877,10 +878,9 @@ protected:
// forwarding pointers to themselves. Reset them.
// forwarding pointers to themselves. Reset them.
void
remove_self_forwarding_pointers
();
void
remove_self_forwarding_pointers
();
// When one is non-null, so is the other. Together, they each pair is
// Together, these store an object with a preserved mark, and its mark value.
// an object with a preserved mark, and its mark value.
Stack
<
oop
,
mtGC
>
_objs_with_preserved_marks
;
GrowableArray
<
oop
>*
_objs_with_preserved_marks
;
Stack
<
markOop
,
mtGC
>
_preserved_marks_of_objs
;
GrowableArray
<
markOop
>*
_preserved_marks_of_objs
;
// Preserve the mark of "obj", if necessary, in preparation for its mark
// Preserve the mark of "obj", if necessary, in preparation for its mark
// word being overwritten with a self-forwarding-pointer.
// word being overwritten with a self-forwarding-pointer.
...
...
src/share/vm/gc_implementation/g1/g1_globals.hpp
浏览文件 @
b0aebc95
...
@@ -101,9 +101,6 @@
...
@@ -101,9 +101,6 @@
"to-space, we will allow regions whose survival rate is up to " \
"to-space, we will allow regions whose survival rate is up to " \
"S + (1 - S)*X, where X is this parameter (as a fraction.)") \
"S + (1 - S)*X, where X is this parameter (as a fraction.)") \
\
\
develop(intx, G1InitYoungSurvRatio, 50, \
"Expected Survival Rate for newly allocated bytes") \
\
develop(bool, G1SATBPrintStubs, false, \
develop(bool, G1SATBPrintStubs, false, \
"If true, print generated stubs for the SATB barrier") \
"If true, print generated stubs for the SATB barrier") \
\
\
...
...
src/share/vm/memory/metaspace.cpp
浏览文件 @
b0aebc95
...
@@ -1064,11 +1064,11 @@ bool VirtualSpaceList::contains(const void *ptr) {
...
@@ -1064,11 +1064,11 @@ bool VirtualSpaceList::contains(const void *ptr) {
//
//
// After the GC the compute_new_size() for MetaspaceGC is called to
// After the GC the compute_new_size() for MetaspaceGC is called to
// resize the capacity of the metaspaces. The current implementation
// resize the capacity of the metaspaces. The current implementation
// is based on the flags Min
Heap
FreeRatio and MaxHeapFreeRatio used
// is based on the flags Min
Metaspace
FreeRatio and MaxHeapFreeRatio used
// to resize the Java heap by some GC's. New flags can be implemented
// to resize the Java heap by some GC's. New flags can be implemented
// if really needed. MinHeapFreeRatio is used to calculate how much
// if really needed. MinHeapFreeRatio is used to calculate how much
// free space is desirable in the metaspace capacity to decide how much
// free space is desirable in the metaspace capacity to decide how much
// to increase the HWM. Max
Heap
FreeRatio is used to decide how much
// to increase the HWM. Max
Metaspace
FreeRatio is used to decide how much
// free space is desirable in the metaspace capacity before decreasing
// free space is desirable in the metaspace capacity before decreasing
// the HWM.
// the HWM.
...
@@ -1166,7 +1166,7 @@ void MetaspaceGC::compute_new_size() {
...
@@ -1166,7 +1166,7 @@ void MetaspaceGC::compute_new_size() {
size_t
capacity_until_GC
=
vsl
->
capacity_bytes_sum
();
size_t
capacity_until_GC
=
vsl
->
capacity_bytes_sum
();
size_t
free_after_gc
=
capacity_until_GC
-
used_after_gc
;
size_t
free_after_gc
=
capacity_until_GC
-
used_after_gc
;
const
double
minimum_free_percentage
=
Min
Heap
FreeRatio
/
100.0
;
const
double
minimum_free_percentage
=
Min
Metaspace
FreeRatio
/
100.0
;
const
double
maximum_used_percentage
=
1.0
-
minimum_free_percentage
;
const
double
maximum_used_percentage
=
1.0
-
minimum_free_percentage
;
const
double
min_tmp
=
used_after_gc
/
maximum_used_percentage
;
const
double
min_tmp
=
used_after_gc
/
maximum_used_percentage
;
...
@@ -1232,8 +1232,8 @@ void MetaspaceGC::compute_new_size() {
...
@@ -1232,8 +1232,8 @@ void MetaspaceGC::compute_new_size() {
max_shrink_words
));
max_shrink_words
));
// Should shrinking be considered?
// Should shrinking be considered?
if
(
Max
Heap
FreeRatio
<
100
)
{
if
(
Max
Metaspace
FreeRatio
<
100
)
{
const
double
maximum_free_percentage
=
Max
Heap
FreeRatio
/
100.0
;
const
double
maximum_free_percentage
=
Max
Metaspace
FreeRatio
/
100.0
;
const
double
minimum_used_percentage
=
1.0
-
maximum_free_percentage
;
const
double
minimum_used_percentage
=
1.0
-
maximum_free_percentage
;
const
double
max_tmp
=
used_after_gc
/
minimum_used_percentage
;
const
double
max_tmp
=
used_after_gc
/
minimum_used_percentage
;
size_t
maximum_desired_capacity
=
(
size_t
)
MIN2
(
max_tmp
,
double
(
max_uintx
));
size_t
maximum_desired_capacity
=
(
size_t
)
MIN2
(
max_tmp
,
double
(
max_uintx
));
...
...
src/share/vm/runtime/arguments.cpp
浏览文件 @
b0aebc95
...
@@ -1257,7 +1257,7 @@ void Arguments::set_cms_and_parnew_gc_flags() {
...
@@ -1257,7 +1257,7 @@ void Arguments::set_cms_and_parnew_gc_flags() {
// prefer minuscule survivor spaces so as not to waste
// prefer minuscule survivor spaces so as not to waste
// space for (non-existent) survivors
// space for (non-existent) survivors
if
(
FLAG_IS_DEFAULT
(
SurvivorRatio
)
&&
MaxTenuringThreshold
==
0
)
{
if
(
FLAG_IS_DEFAULT
(
SurvivorRatio
)
&&
MaxTenuringThreshold
==
0
)
{
FLAG_SET_ERGO
(
intx
,
SurvivorRatio
,
MAX2
((
intx
)
1024
,
SurvivorRatio
));
FLAG_SET_ERGO
(
uintx
,
SurvivorRatio
,
MAX2
((
u
intx
)
1024
,
SurvivorRatio
));
}
}
// If OldPLABSize is set and CMSParPromoteBlocksToClaim is not,
// If OldPLABSize is set and CMSParPromoteBlocksToClaim is not,
// set CMSParPromoteBlocksToClaim equal to OldPLABSize.
// set CMSParPromoteBlocksToClaim equal to OldPLABSize.
...
@@ -1897,6 +1897,24 @@ bool Arguments::check_vm_args_consistency() {
...
@@ -1897,6 +1897,24 @@ bool Arguments::check_vm_args_consistency() {
// Keeping the heap 100% free is hard ;-) so limit it to 99%.
// Keeping the heap 100% free is hard ;-) so limit it to 99%.
MinHeapFreeRatio
=
MIN2
(
MinHeapFreeRatio
,
(
uintx
)
99
);
MinHeapFreeRatio
=
MIN2
(
MinHeapFreeRatio
,
(
uintx
)
99
);
// Min/MaxMetaspaceFreeRatio
status
=
status
&&
verify_percentage
(
MinMetaspaceFreeRatio
,
"MinMetaspaceFreeRatio"
);
status
=
status
&&
verify_percentage
(
MaxMetaspaceFreeRatio
,
"MaxMetaspaceFreeRatio"
);
if
(
MinMetaspaceFreeRatio
>
MaxMetaspaceFreeRatio
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
"MinMetaspaceFreeRatio (%s"
UINTX_FORMAT
") must be less than or "
"equal to MaxMetaspaceFreeRatio (%s"
UINTX_FORMAT
")
\n
"
,
FLAG_IS_DEFAULT
(
MinMetaspaceFreeRatio
)
?
"Default: "
:
""
,
MinMetaspaceFreeRatio
,
FLAG_IS_DEFAULT
(
MaxMetaspaceFreeRatio
)
?
"Default: "
:
""
,
MaxMetaspaceFreeRatio
);
status
=
false
;
}
// Trying to keep 100% free is not practical
MinMetaspaceFreeRatio
=
MIN2
(
MinMetaspaceFreeRatio
,
(
uintx
)
99
);
if
(
FullGCALot
&&
FLAG_IS_DEFAULT
(
MarkSweepAlwaysCompactCount
))
{
if
(
FullGCALot
&&
FLAG_IS_DEFAULT
(
MarkSweepAlwaysCompactCount
))
{
MarkSweepAlwaysCompactCount
=
1
;
// Move objects every gc.
MarkSweepAlwaysCompactCount
=
1
;
// Move objects every gc.
}
}
...
@@ -1904,7 +1922,7 @@ bool Arguments::check_vm_args_consistency() {
...
@@ -1904,7 +1922,7 @@ bool Arguments::check_vm_args_consistency() {
if
(
UseParallelOldGC
&&
ParallelOldGCSplitALot
)
{
if
(
UseParallelOldGC
&&
ParallelOldGCSplitALot
)
{
// Settings to encourage splitting.
// Settings to encourage splitting.
if
(
!
FLAG_IS_CMDLINE
(
NewRatio
))
{
if
(
!
FLAG_IS_CMDLINE
(
NewRatio
))
{
FLAG_SET_CMDLINE
(
intx
,
NewRatio
,
2
);
FLAG_SET_CMDLINE
(
u
intx
,
NewRatio
,
2
);
}
}
if
(
!
FLAG_IS_CMDLINE
(
ScavengeBeforeFullGC
))
{
if
(
!
FLAG_IS_CMDLINE
(
ScavengeBeforeFullGC
))
{
FLAG_SET_CMDLINE
(
bool
,
ScavengeBeforeFullGC
,
false
);
FLAG_SET_CMDLINE
(
bool
,
ScavengeBeforeFullGC
,
false
);
...
...
src/share/vm/runtime/globals.hpp
浏览文件 @
b0aebc95
/*
/*
* Copyright (c) 1997, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -1802,7 +1802,7 @@ class CommandLineFlags {
...
@@ -1802,7 +1802,7 @@ class CommandLineFlags {
product(bool, ParallelRefProcBalancingEnabled, true, \
product(bool, ParallelRefProcBalancingEnabled, true, \
"Enable balancing of reference processing queues") \
"Enable balancing of reference processing queues") \
\
\
product(
intx, CMSTriggerRatio, 80,
\
product(
uintx, CMSTriggerRatio, 80,
\
"Percentage of MinHeapFreeRatio in CMS generation that is " \
"Percentage of MinHeapFreeRatio in CMS generation that is " \
"allocated before a CMS collection cycle commences") \
"allocated before a CMS collection cycle commences") \
\
\
...
@@ -1816,7 +1816,7 @@ class CommandLineFlags {
...
@@ -1816,7 +1816,7 @@ class CommandLineFlags {
\
\
product(uintx, InitiatingHeapOccupancyPercent, 45, \
product(uintx, InitiatingHeapOccupancyPercent, 45, \
"Percentage of the (entire) heap occupancy to start a " \
"Percentage of the (entire) heap occupancy to start a " \
"concurrent GC cycle. It
u
s used by GCs that trigger a " \
"concurrent GC cycle. It
i
s used by GCs that trigger a " \
"concurrent GC cycle based on the occupancy of the entire heap, " \
"concurrent GC cycle based on the occupancy of the entire heap, " \
"not just one of the generations (e.g., G1). A value of 0 " \
"not just one of the generations (e.g., G1). A value of 0 " \
"denotes 'do constant GC cycles'.") \
"denotes 'do constant GC cycles'.") \
...
@@ -2977,10 +2977,10 @@ class CommandLineFlags {
...
@@ -2977,10 +2977,10 @@ class CommandLineFlags {
product(uintx, TLABWasteIncrement, 4, \
product(uintx, TLABWasteIncrement, 4, \
"Increment allowed waste at slow allocation") \
"Increment allowed waste at slow allocation") \
\
\
product(
intx, SurvivorRatio, 8,
\
product(
uintx, SurvivorRatio, 8,
\
"Ratio of eden/survivor space size") \
"Ratio of eden/survivor space size") \
\
\
product(
intx, NewRatio, 2,
\
product(
uintx, NewRatio, 2,
\
"Ratio of new/old generation sizes") \
"Ratio of new/old generation sizes") \
\
\
product_pd(uintx, NewSizeThreadIncrease, \
product_pd(uintx, NewSizeThreadIncrease, \
...
@@ -3010,10 +3010,16 @@ class CommandLineFlags {
...
@@ -3010,10 +3010,16 @@ class CommandLineFlags {
"Min change in heap space due to GC (in bytes)") \
"Min change in heap space due to GC (in bytes)") \
\
\
product(uintx, MinMetaspaceExpansion, ScaleForWordSize(256*K), \
product(uintx, MinMetaspaceExpansion, ScaleForWordSize(256*K), \
"Min expansion of permanent heap (in bytes)") \
"Min expansion of Metaspace (in bytes)") \
\
product(uintx, MinMetaspaceFreeRatio, 40, \
"Min percentage of Metaspace free after GC to avoid expansion") \
\
product(uintx, MaxMetaspaceFreeRatio, 70, \
"Max percentage of Metaspace free after GC to avoid shrinking") \
\
\
product(uintx, MaxMetaspaceExpansion, ScaleForWordSize(4*M), \
product(uintx, MaxMetaspaceExpansion, ScaleForWordSize(4*M), \
"Max expansion of
permanent heap without full GC (in bytes)")
\
"Max expansion of
Metaspace without full GC (in bytes)")
\
\
\
product(intx, QueuedAllocationWarningCount, 0, \
product(intx, QueuedAllocationWarningCount, 0, \
"Number of times an allocation that queues behind a GC " \
"Number of times an allocation that queues behind a GC " \
...
@@ -3031,7 +3037,7 @@ class CommandLineFlags {
...
@@ -3031,7 +3037,7 @@ class CommandLineFlags {
product(uintx, InitialTenuringThreshold, 7, \
product(uintx, InitialTenuringThreshold, 7, \
"Initial value for tenuring threshold") \
"Initial value for tenuring threshold") \
\
\
product(
intx, TargetSurvivorRatio, 50,
\
product(
uintx, TargetSurvivorRatio, 50,
\
"Desired percentage of survivor space used after scavenge") \
"Desired percentage of survivor space used after scavenge") \
\
\
product(uintx, MarkSweepDeadRatio, 5, \
product(uintx, MarkSweepDeadRatio, 5, \
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录