Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell11
提交
d7f7ae46
D
dragonwell11
项目概览
openanolis
/
dragonwell11
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell11
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d7f7ae46
编写于
8月 18, 2016
作者:
D
dsamersoff
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
d8836797
c7fd5bed
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
42 addition
and
11 deletion
+42
-11
hotspot/test/compiler/codecache/jmx/CodeCacheUtils.java
hotspot/test/compiler/codecache/jmx/CodeCacheUtils.java
+23
-1
hotspot/test/compiler/codecache/jmx/PeakUsageTest.java
hotspot/test/compiler/codecache/jmx/PeakUsageTest.java
+19
-10
未找到文件。
hotspot/test/compiler/codecache/jmx/CodeCacheUtils.java
浏览文件 @
d7f7ae46
/*
* Copyright (c) 2014, 201
5
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 201
6
, 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
...
...
@@ -119,6 +119,28 @@ public final class CodeCacheUtils {
}
}
/**
* Verifies that 'newValue' is equal to 'oldValue' if usage of the
* corresponding code heap is predictable. Checks the weaker condition
* 'newValue <= oldValue' if usage is not predictable because intermediate
* allocations may happen.
*
* @param btype BlobType of the code heap to be checked
* @param newValue New value to be verified
* @param oldValue Old value to be verified
* @param msg Error message if verification fails
*/
public
static
void
assertEQorLTE
(
BlobType
btype
,
long
newValue
,
long
oldValue
,
String
msg
)
{
if
(
CodeCacheUtils
.
isCodeHeapPredictable
(
btype
))
{
// Usage is predictable, check strong == condition
Asserts
.
assertEQ
(
newValue
,
oldValue
,
msg
);
}
else
{
// Usage is not predictable, check weaker <= condition
Asserts
.
assertLTE
(
newValue
,
oldValue
,
msg
);
}
}
public
static
void
disableCollectionUsageThresholds
()
{
BlobType
.
getAvailable
().
stream
()
.
map
(
BlobType:
:
getMemoryPool
)
...
...
hotspot/test/compiler/codecache/jmx/PeakUsageTest.java
浏览文件 @
d7f7ae46
...
...
@@ -27,7 +27,6 @@
* @modules java.base/jdk.internal.misc
* java.management
*
* @ignore 8151345
* @build ompiler.codecache.jmx.PeakUsageTest
* @run driver ClassFileInstaller sun.hotspot.WhiteBox
* sun.hotspot.WhiteBox$WhiteBoxPermission
...
...
@@ -69,9 +68,17 @@ public class PeakUsageTest {
bean
.
resetPeakUsage
();
long
addr
=
CodeCacheUtils
.
WB
.
allocateCodeBlob
(
CodeCacheUtils
.
ALLOCATION_SIZE
,
btype
.
id
);
long
newPeakUsage
=
bean
.
getPeakUsage
().
getUsed
();
try
{
CodeCacheUtils
.
assertEQorGTE
(
btype
,
newPeakUsage
,
bean
.
getUsage
().
getUsed
(),
/*
Always save peakUsage after saving currentUsage. Reversing the order
can lead to inconsistent results (currentUsage > peakUsage) because
of intermediate allocations.
*/
long
currUsage
=
bean
.
getUsage
().
getUsed
();
long
peakUsage
=
bean
.
getPeakUsage
().
getUsed
();
CodeCacheUtils
.
assertEQorLTE
(
btype
,
currUsage
,
peakUsage
,
"Peak usage does not match usage after allocation for "
+
bean
.
getName
());
}
finally
{
...
...
@@ -79,19 +86,21 @@ public class PeakUsageTest {
CodeCacheUtils
.
WB
.
freeCodeBlob
(
addr
);
}
}
CodeCacheUtils
.
assertEQorGTE
(
btype
,
newPeakUsage
,
bean
.
getPeakUsage
().
getUsed
(),
"Code cache peak usage has changed after usage decreased for "
+
bean
.
getName
());
bean
.
resetPeakUsage
();
CodeCacheUtils
.
assertEQorGTE
(
btype
,
bean
.
getPeakUsage
().
getUsed
(),
bean
.
getUsage
().
getUsed
(),
long
currUsage
=
bean
.
getUsage
().
getUsed
();
long
peakUsage
=
bean
.
getPeakUsage
().
getUsed
();
CodeCacheUtils
.
assertEQorLTE
(
btype
,
currUsage
,
peakUsage
,
"Code cache peak usage is not equal to usage after reset for "
+
bean
.
getName
());
long
addr2
=
CodeCacheUtils
.
WB
.
allocateCodeBlob
(
CodeCacheUtils
.
ALLOCATION_SIZE
,
btype
.
id
);
try
{
CodeCacheUtils
.
assertEQorGTE
(
btype
,
bean
.
getPeakUsage
().
getUsed
(),
bean
.
getUsage
().
getUsed
(),
currUsage
=
bean
.
getUsage
().
getUsed
();
peakUsage
=
bean
.
getPeakUsage
().
getUsed
();
CodeCacheUtils
.
assertEQorLTE
(
btype
,
currUsage
,
peakUsage
,
"Code cache peak usage is not equal to usage after fresh "
+
"allocation for "
+
bean
.
getName
());
}
finally
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录