Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
7ac26a8c
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看板
提交
7ac26a8c
编写于
1月 14, 2013
作者:
B
brutisso
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8005972: ParNew should not update the tenuring threshold when promotion failed has occurred
Reviewed-by: ysr, johnc, jwilhelm
上级
f4d5e178
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
11 addition
and
15 deletion
+11
-15
src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+2
-7
src/share/vm/gc_implementation/parNew/parNewGeneration.hpp
src/share/vm/gc_implementation/parNew/parNewGeneration.hpp
+0
-4
src/share/vm/memory/defNewGeneration.cpp
src/share/vm/memory/defNewGeneration.cpp
+6
-3
src/share/vm/memory/defNewGeneration.hpp
src/share/vm/memory/defNewGeneration.hpp
+3
-1
未找到文件。
src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
浏览文件 @
7ac26a8c
...
@@ -878,12 +878,6 @@ void EvacuateFollowersClosureGeneral::do_void() {
...
@@ -878,12 +878,6 @@ void EvacuateFollowersClosureGeneral::do_void() {
bool
ParNewGeneration
::
_avoid_promotion_undo
=
false
;
bool
ParNewGeneration
::
_avoid_promotion_undo
=
false
;
void
ParNewGeneration
::
adjust_desired_tenuring_threshold
()
{
// Set the desired survivor size to half the real survivor space
_tenuring_threshold
=
age_table
()
->
compute_tenuring_threshold
(
to
()
->
capacity
()
/
HeapWordSize
);
}
// A Generation that does parallel young-gen collection.
// A Generation that does parallel young-gen collection.
void
ParNewGeneration
::
collect
(
bool
full
,
void
ParNewGeneration
::
collect
(
bool
full
,
...
@@ -1013,6 +1007,8 @@ void ParNewGeneration::collect(bool full,
...
@@ -1013,6 +1007,8 @@ void ParNewGeneration::collect(bool full,
size_policy
->
reset_gc_overhead_limit_count
();
size_policy
->
reset_gc_overhead_limit_count
();
assert
(
to
()
->
is_empty
(),
"to space should be empty now"
);
assert
(
to
()
->
is_empty
(),
"to space should be empty now"
);
adjust_desired_tenuring_threshold
();
}
else
{
}
else
{
assert
(
_promo_failure_scan_stack
.
is_empty
(),
"post condition"
);
assert
(
_promo_failure_scan_stack
.
is_empty
(),
"post condition"
);
_promo_failure_scan_stack
.
clear
(
true
);
// Clear cached segments.
_promo_failure_scan_stack
.
clear
(
true
);
// Clear cached segments.
...
@@ -1035,7 +1031,6 @@ void ParNewGeneration::collect(bool full,
...
@@ -1035,7 +1031,6 @@ void ParNewGeneration::collect(bool full,
from
()
->
set_concurrent_iteration_safe_limit
(
from
()
->
top
());
from
()
->
set_concurrent_iteration_safe_limit
(
from
()
->
top
());
to
()
->
set_concurrent_iteration_safe_limit
(
to
()
->
top
());
to
()
->
set_concurrent_iteration_safe_limit
(
to
()
->
top
());
adjust_desired_tenuring_threshold
();
if
(
ResizePLAB
)
{
if
(
ResizePLAB
)
{
plab_stats
()
->
adjust_desired_plab_sz
(
n_workers
);
plab_stats
()
->
adjust_desired_plab_sz
(
n_workers
);
}
}
...
...
src/share/vm/gc_implementation/parNew/parNewGeneration.hpp
浏览文件 @
7ac26a8c
...
@@ -347,10 +347,6 @@ class ParNewGeneration: public DefNewGeneration {
...
@@ -347,10 +347,6 @@ class ParNewGeneration: public DefNewGeneration {
bool
survivor_overflow
()
{
return
_survivor_overflow
;
}
bool
survivor_overflow
()
{
return
_survivor_overflow
;
}
void
set_survivor_overflow
(
bool
v
)
{
_survivor_overflow
=
v
;
}
void
set_survivor_overflow
(
bool
v
)
{
_survivor_overflow
=
v
;
}
// Adjust the tenuring threshold. See the implementation for
// the details of the policy.
virtual
void
adjust_desired_tenuring_threshold
();
public:
public:
ParNewGeneration
(
ReservedSpace
rs
,
size_t
initial_byte_size
,
int
level
);
ParNewGeneration
(
ReservedSpace
rs
,
size_t
initial_byte_size
,
int
level
);
...
...
src/share/vm/memory/defNewGeneration.cpp
浏览文件 @
7ac26a8c
...
@@ -550,6 +550,11 @@ HeapWord* DefNewGeneration::expand_and_allocate(size_t size,
...
@@ -550,6 +550,11 @@ HeapWord* DefNewGeneration::expand_and_allocate(size_t size,
return
allocate
(
size
,
is_tlab
);
return
allocate
(
size
,
is_tlab
);
}
}
void
DefNewGeneration
::
adjust_desired_tenuring_threshold
()
{
// Set the desired survivor size to half the real survivor space
_tenuring_threshold
=
age_table
()
->
compute_tenuring_threshold
(
to
()
->
capacity
()
/
HeapWordSize
);
}
void
DefNewGeneration
::
collect
(
bool
full
,
void
DefNewGeneration
::
collect
(
bool
full
,
bool
clear_all_soft_refs
,
bool
clear_all_soft_refs
,
...
@@ -649,9 +654,7 @@ void DefNewGeneration::collect(bool full,
...
@@ -649,9 +654,7 @@ void DefNewGeneration::collect(bool full,
assert
(
to
()
->
is_empty
(),
"to space should be empty now"
);
assert
(
to
()
->
is_empty
(),
"to space should be empty now"
);
// Set the desired survivor size to half the real survivor space
adjust_desired_tenuring_threshold
();
_tenuring_threshold
=
age_table
()
->
compute_tenuring_threshold
(
to
()
->
capacity
()
/
HeapWordSize
);
// A successful scavenge should restart the GC time limit count which is
// A successful scavenge should restart the GC time limit count which is
// for full GC's.
// for full GC's.
...
...
src/share/vm/memory/defNewGeneration.hpp
浏览文件 @
7ac26a8c
...
@@ -124,7 +124,9 @@ protected:
...
@@ -124,7 +124,9 @@ protected:
_should_allocate_from_space
=
true
;
_should_allocate_from_space
=
true
;
}
}
protected:
// Tenuring
void
adjust_desired_tenuring_threshold
();
// Spaces
// Spaces
EdenSpace
*
_eden_space
;
EdenSpace
*
_eden_space
;
ContiguousSpace
*
_from_space
;
ContiguousSpace
*
_from_space
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录