Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
b3a4dd63
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看板
提交
b3a4dd63
编写于
6月 12, 2013
作者:
E
ehelin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8015683: object_count_after_gc should have the same timestamp for all events
Reviewed-by: mgerdin, stefank
上级
12ed5bd1
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
7 deletion
+12
-7
src/share/vm/gc_implementation/shared/gcTrace.cpp
src/share/vm/gc_implementation/shared/gcTrace.cpp
+8
-4
src/share/vm/gc_implementation/shared/objectCountEventSender.cpp
...re/vm/gc_implementation/shared/objectCountEventSender.cpp
+3
-2
src/share/vm/gc_implementation/shared/objectCountEventSender.hpp
...re/vm/gc_implementation/shared/objectCountEventSender.hpp
+1
-1
未找到文件。
src/share/vm/gc_implementation/shared/gcTrace.cpp
浏览文件 @
b3a4dd63
...
...
@@ -30,6 +30,7 @@
#include "gc_implementation/shared/objectCountEventSender.hpp"
#include "memory/heapInspection.hpp"
#include "memory/referenceProcessorStats.hpp"
#include "runtime/os.hpp"
#include "utilities/globalDefinitions.hpp"
#if INCLUDE_ALL_GCS
...
...
@@ -96,17 +97,19 @@ class ObjectCountEventSenderClosure : public KlassInfoClosure {
const
GCId
_gc_id
;
const
double
_size_threshold_percentage
;
const
size_t
_total_size_in_words
;
const
jlong
_timestamp
;
public:
ObjectCountEventSenderClosure
(
GCId
gc_id
,
size_t
total_size_in_words
)
:
ObjectCountEventSenderClosure
(
GCId
gc_id
,
size_t
total_size_in_words
,
jlong
timestamp
)
:
_gc_id
(
gc_id
),
_size_threshold_percentage
(
ObjectCountCutOffPercent
/
100
),
_total_size_in_words
(
total_size_in_words
)
_total_size_in_words
(
total_size_in_words
),
_timestamp
(
timestamp
)
{}
virtual
void
do_cinfo
(
KlassInfoEntry
*
entry
)
{
if
(
should_send_event
(
entry
))
{
ObjectCountEventSender
::
send
(
entry
,
_gc_id
);
ObjectCountEventSender
::
send
(
entry
,
_gc_id
,
_timestamp
);
}
}
...
...
@@ -129,7 +132,8 @@ void GCTracer::report_object_count_after_gc(BoolObjectClosure* is_alive_cl) {
HeapInspection
hi
(
false
,
false
,
false
,
NULL
);
hi
.
populate_table
(
&
cit
,
is_alive_cl
);
ObjectCountEventSenderClosure
event_sender
(
_shared_gc_info
.
id
(),
cit
.
size_of_instances_in_words
());
jlong
timestamp
=
os
::
elapsed_counter
();
ObjectCountEventSenderClosure
event_sender
(
_shared_gc_info
.
id
(),
cit
.
size_of_instances_in_words
(),
timestamp
);
cit
.
iterate
(
&
event_sender
);
}
}
...
...
src/share/vm/gc_implementation/shared/objectCountEventSender.cpp
浏览文件 @
b3a4dd63
...
...
@@ -31,15 +31,16 @@
#if INCLUDE_SERVICES
void
ObjectCountEventSender
::
send
(
const
KlassInfoEntry
*
entry
,
GCId
gc_id
)
{
void
ObjectCountEventSender
::
send
(
const
KlassInfoEntry
*
entry
,
GCId
gc_id
,
jlong
timestamp
)
{
assert
(
Tracing
::
is_event_enabled
(
EventObjectCountAfterGC
::
eventId
),
"Only call this method if the event is enabled"
);
EventObjectCountAfterGC
event
;
EventObjectCountAfterGC
event
(
UNTIMED
)
;
event
.
set_gcId
(
gc_id
);
event
.
set_class
(
entry
->
klass
());
event
.
set_count
(
entry
->
count
());
event
.
set_totalSize
(
entry
->
words
()
*
BytesPerWord
);
event
.
set_endtime
(
timestamp
);
event
.
commit
();
}
...
...
src/share/vm/gc_implementation/shared/objectCountEventSender.hpp
浏览文件 @
b3a4dd63
...
...
@@ -35,7 +35,7 @@ class KlassInfoEntry;
class
ObjectCountEventSender
:
public
AllStatic
{
public:
static
void
send
(
const
KlassInfoEntry
*
entry
,
GCId
gc_id
);
static
void
send
(
const
KlassInfoEntry
*
entry
,
GCId
gc_id
,
jlong
timestamp
);
static
bool
should_send_event
();
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录