Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
d80fd292
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看板
提交
d80fd292
编写于
9月 10, 2014
作者:
J
jcoomes
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8057818: collect allocation context statistics at gc pauses
Reviewed-by: mikael, jmasa
上级
9c0f9f58
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
19 addition
and
1 deletion
+19
-1
src/share/vm/gc_implementation/g1/concurrentMark.cpp
src/share/vm/gc_implementation/g1/concurrentMark.cpp
+1
-0
src/share/vm/gc_implementation/g1/g1AllocationContext.hpp
src/share/vm/gc_implementation/g1/g1AllocationContext.hpp
+7
-0
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+2
-1
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
+5
-0
src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp
+4
-0
未找到文件。
src/share/vm/gc_implementation/g1/concurrentMark.cpp
浏览文件 @
d80fd292
...
@@ -3332,6 +3332,7 @@ void ConcurrentMark::aggregate_count_data() {
...
@@ -3332,6 +3332,7 @@ void ConcurrentMark::aggregate_count_data() {
}
else
{
}
else
{
g1_par_agg_task
.
work
(
0
);
g1_par_agg_task
.
work
(
0
);
}
}
_g1h
->
allocation_context_stats
().
update_at_remark
();
}
}
// Clear the per-worker arrays used to store the per-region counting data
// Clear the per-worker arrays used to store the per-region counting data
...
...
src/share/vm/gc_implementation/g1/g1AllocationContext.hpp
浏览文件 @
d80fd292
...
@@ -41,4 +41,11 @@ public:
...
@@ -41,4 +41,11 @@ public:
}
}
};
};
class
AllocationContextStats
:
public
StackObj
{
public:
inline
void
clear
()
{
}
inline
void
update
(
bool
full_gc
)
{
}
inline
void
update_at_remark
()
{
}
};
#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1ALLOCATIONCONTEXT_HPP
#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1ALLOCATIONCONTEXT_HPP
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
浏览文件 @
d80fd292
...
@@ -3585,7 +3585,7 @@ void G1CollectedHeap::gc_prologue(bool full /* Ignored */) {
...
@@ -3585,7 +3585,7 @@ void G1CollectedHeap::gc_prologue(bool full /* Ignored */) {
}
}
}
}
void
G1CollectedHeap
::
gc_epilogue
(
bool
full
/* Ignored */
)
{
void
G1CollectedHeap
::
gc_epilogue
(
bool
full
)
{
if
(
G1SummarizeRSetStats
&&
if
(
G1SummarizeRSetStats
&&
(
G1SummarizeRSetStatsPeriod
>
0
)
&&
(
G1SummarizeRSetStatsPeriod
>
0
)
&&
...
@@ -3602,6 +3602,7 @@ void G1CollectedHeap::gc_epilogue(bool full /* Ignored */) {
...
@@ -3602,6 +3602,7 @@ void G1CollectedHeap::gc_epilogue(bool full /* Ignored */) {
// always_do_update_barrier = true;
// always_do_update_barrier = true;
resize_all_tlabs
();
resize_all_tlabs
();
allocation_context_stats
().
update
(
full
);
// We have just completed a GC. Update the soft reference
// We have just completed a GC. Update the soft reference
// policy with the new heap occupancy
// policy with the new heap occupancy
...
...
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
浏览文件 @
d80fd292
...
@@ -263,6 +263,9 @@ private:
...
@@ -263,6 +263,9 @@ private:
// Class that handles the different kinds of allocations.
// Class that handles the different kinds of allocations.
G1Allocator
*
_allocator
;
G1Allocator
*
_allocator
;
// Statistics for each allocation context
AllocationContextStats
_allocation_context_stats
;
// PLAB sizing policy for survivors.
// PLAB sizing policy for survivors.
PLABStats
_survivor_plab_stats
;
PLABStats
_survivor_plab_stats
;
...
@@ -656,6 +659,8 @@ public:
...
@@ -656,6 +659,8 @@ public:
// Determines PLAB size for a particular allocation purpose.
// Determines PLAB size for a particular allocation purpose.
size_t
desired_plab_sz
(
GCAllocPurpose
purpose
);
size_t
desired_plab_sz
(
GCAllocPurpose
purpose
);
inline
AllocationContextStats
&
allocation_context_stats
();
// Do anything common to GC's.
// Do anything common to GC's.
virtual
void
gc_prologue
(
bool
full
);
virtual
void
gc_prologue
(
bool
full
);
virtual
void
gc_epilogue
(
bool
full
);
virtual
void
gc_epilogue
(
bool
full
);
...
...
src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp
浏览文件 @
d80fd292
...
@@ -37,6 +37,10 @@
...
@@ -37,6 +37,10 @@
// Inline functions for G1CollectedHeap
// Inline functions for G1CollectedHeap
inline
AllocationContextStats
&
G1CollectedHeap
::
allocation_context_stats
()
{
return
_allocation_context_stats
;
}
// Return the region with the given index. It assumes the index is valid.
// Return the region with the given index. It assumes the index is valid.
inline
HeapRegion
*
G1CollectedHeap
::
region_at
(
uint
index
)
const
{
return
_hrm
.
at
(
index
);
}
inline
HeapRegion
*
G1CollectedHeap
::
region_at
(
uint
index
)
const
{
return
_hrm
.
at
(
index
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录