Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
2c2d5370
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看板
提交
2c2d5370
编写于
5月 30, 2016
作者:
C
csahu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8054326: Confusing message in "Current rem set statistics"
Reviewed-by: pliden, kevinw
上级
da54e2eb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
39 addition
and
27 deletion
+39
-27
src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp
src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp
+39
-27
未找到文件。
src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp
浏览文件 @
2c2d5370
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013,
2016
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -133,10 +133,6 @@ static double percent_of(size_t numerator, size_t denominator) {
}
}
static
size_t
round_to_K
(
size_t
value
)
{
return
value
/
K
;
}
class
RegionTypeCounter
VALUE_OBJ_CLASS_SPEC
{
private:
const
char
*
_name
;
...
...
@@ -187,8 +183,10 @@ public:
size_t
code_root_elems
()
const
{
return
_code_root_elems
;
}
void
print_rs_mem_info_on
(
outputStream
*
out
,
size_t
total
)
{
out
->
print_cr
(
" "
SIZE_FORMAT_W
(
8
)
"K (%5.1f%%) by "
SIZE_FORMAT
" %s regions"
,
round_to_K
(
rs_mem_size
()),
rs_mem_size_percent_of
(
total
),
amount
(),
_name
);
out
->
print_cr
(
" "
SIZE_FORMAT_W
(
8
)
"%s (%5.1f%%) by "
SIZE_FORMAT
" %s regions"
,
byte_size_in_proper_unit
(
rs_mem_size
()),
proper_unit_for_byte_size
(
rs_mem_size
()),
rs_mem_size_percent_of
(
total
),
amount
(),
_name
);
}
void
print_cards_occupied_info_on
(
outputStream
*
out
,
size_t
total
)
{
...
...
@@ -197,8 +195,10 @@ public:
}
void
print_code_root_mem_info_on
(
outputStream
*
out
,
size_t
total
)
{
out
->
print_cr
(
" "
SIZE_FORMAT_W
(
8
)
"K (%5.1f%%) by "
SIZE_FORMAT
" %s regions"
,
round_to_K
(
code_root_mem_size
()),
code_root_mem_size_percent_of
(
total
),
amount
(),
_name
);
out
->
print_cr
(
" "
SIZE_FORMAT_W
(
8
)
"%s (%5.1f%%) by "
SIZE_FORMAT
" %s regions"
,
byte_size_in_proper_unit
(
code_root_mem_size
()),
proper_unit_for_byte_size
(
code_root_mem_size
()),
code_root_mem_size_percent_of
(
total
),
amount
(),
_name
);
}
void
print_code_root_elems_info_on
(
outputStream
*
out
,
size_t
total
)
{
...
...
@@ -280,17 +280,23 @@ public:
RegionTypeCounter
*
counters
[]
=
{
&
_young
,
&
_humonguous
,
&
_free
,
&
_old
,
NULL
};
out
->
print_cr
(
"
\n
Current rem set statistics"
);
out
->
print_cr
(
" Total per region rem sets sizes = "
SIZE_FORMAT
"K."
" Max = "
SIZE_FORMAT
"K."
,
round_to_K
(
total_rs_mem_sz
()),
round_to_K
(
max_rs_mem_sz
()));
out
->
print_cr
(
" Total per region rem sets sizes = "
SIZE_FORMAT
"%s."
" Max = "
SIZE_FORMAT
"%s."
,
byte_size_in_proper_unit
(
total_rs_mem_sz
()),
proper_unit_for_byte_size
(
total_rs_mem_sz
()),
byte_size_in_proper_unit
(
max_rs_mem_sz
()),
proper_unit_for_byte_size
(
max_rs_mem_sz
()));
for
(
RegionTypeCounter
**
current
=
&
counters
[
0
];
*
current
!=
NULL
;
current
++
)
{
(
*
current
)
->
print_rs_mem_info_on
(
out
,
total_rs_mem_sz
());
}
out
->
print_cr
(
" Static structures = "
SIZE_FORMAT
"K,"
" free_lists = "
SIZE_FORMAT
"K."
,
round_to_K
(
HeapRegionRemSet
::
static_mem_size
()),
round_to_K
(
HeapRegionRemSet
::
fl_mem_size
()));
out
->
print_cr
(
" Static structures = "
SIZE_FORMAT
"%s,"
" free_lists = "
SIZE_FORMAT
"%s."
,
byte_size_in_proper_unit
(
HeapRegionRemSet
::
static_mem_size
()),
proper_unit_for_byte_size
(
HeapRegionRemSet
::
static_mem_size
()),
byte_size_in_proper_unit
(
HeapRegionRemSet
::
fl_mem_size
()),
proper_unit_for_byte_size
(
HeapRegionRemSet
::
fl_mem_size
()));
out
->
print_cr
(
" "
SIZE_FORMAT
" occupied cards represented."
,
total_cards_occupied
());
...
...
@@ -301,17 +307,21 @@ public:
// Largest sized rem set region statistics
HeapRegionRemSet
*
rem_set
=
max_rs_mem_sz_region
()
->
rem_set
();
out
->
print_cr
(
" Region with largest rem set = "
HR_FORMAT
", "
"size = "
SIZE_FORMAT
"
K, occupied = "
SIZE_FORMAT
"K
."
,
"size = "
SIZE_FORMAT
"
%s, occupied = "
SIZE_FORMAT
"%s
."
,
HR_FORMAT_PARAMS
(
max_rs_mem_sz_region
()),
round_to_K
(
rem_set
->
mem_size
()),
round_to_K
(
rem_set
->
occupied
()));
byte_size_in_proper_unit
(
rem_set
->
mem_size
()),
proper_unit_for_byte_size
(
rem_set
->
mem_size
()),
byte_size_in_proper_unit
(
rem_set
->
occupied
()),
proper_unit_for_byte_size
(
rem_set
->
occupied
()));
// Strong code root statistics
HeapRegionRemSet
*
max_code_root_rem_set
=
max_code_root_mem_sz_region
()
->
rem_set
();
out
->
print_cr
(
" Total heap region code root sets sizes = "
SIZE_FORMAT
"K."
" Max = "
SIZE_FORMAT
"K."
,
round_to_K
(
total_code_root_mem_sz
()),
round_to_K
(
max_code_root_rem_set
->
strong_code_roots_mem_size
()));
out
->
print_cr
(
" Total heap region code root sets sizes = "
SIZE_FORMAT
"%s."
" Max = "
SIZE_FORMAT
"%s."
,
byte_size_in_proper_unit
(
total_code_root_mem_sz
()),
proper_unit_for_byte_size
(
total_code_root_mem_sz
()),
byte_size_in_proper_unit
(
max_code_root_rem_set
->
strong_code_roots_mem_size
()),
proper_unit_for_byte_size
(
max_code_root_rem_set
->
strong_code_roots_mem_size
()));
for
(
RegionTypeCounter
**
current
=
&
counters
[
0
];
*
current
!=
NULL
;
current
++
)
{
(
*
current
)
->
print_code_root_mem_info_on
(
out
,
total_code_root_mem_sz
());
}
...
...
@@ -323,10 +333,12 @@ public:
}
out
->
print_cr
(
" Region with largest amount of code roots = "
HR_FORMAT
", "
"size = "
SIZE_FORMAT
"
K
, num_elems = "
SIZE_FORMAT
"."
,
"size = "
SIZE_FORMAT
"
%s
, num_elems = "
SIZE_FORMAT
"."
,
HR_FORMAT_PARAMS
(
max_code_root_mem_sz_region
()),
round_to_K
(
max_code_root_rem_set
->
strong_code_roots_mem_size
()),
round_to_K
(
max_code_root_rem_set
->
strong_code_roots_list_length
()));
byte_size_in_proper_unit
(
max_code_root_rem_set
->
strong_code_roots_mem_size
()),
proper_unit_for_byte_size
(
max_code_root_rem_set
->
strong_code_roots_mem_size
()),
max_code_root_rem_set
->
strong_code_roots_list_length
());
}
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录