Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
ca758867
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ca758867
编写于
9月 11, 2012
作者:
M
mduigou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7189926: Reduce test size for default run. Add additional run enabling alternative hashing.
Reviewed-by: alanb
上级
82440f32
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
17 deletion
+29
-17
test/java/util/Map/Collisions.java
test/java/util/Map/Collisions.java
+29
-17
未找到文件。
test/java/util/Map/Collisions.java
浏览文件 @
ca758867
...
...
@@ -24,6 +24,8 @@
/*
* @test
* @bug 7126277
* @run main Collisions -shortrun
* @run main Collisions -Djdk.map.althashing.threshold=0 -shortrun
* @summary Ensure Maps behave well with lots of hashCode() collisions.
* @author Mike Duigou
*/
...
...
@@ -33,6 +35,11 @@ import java.util.concurrent.ConcurrentSkipListMap;
public
class
Collisions
{
/**
* Number of elements per map.
*/
private
static
final
int
TEST_SIZE
=
5000
;
final
static
class
HashableInteger
implements
Comparable
<
HashableInteger
>
{
final
int
value
;
...
...
@@ -64,20 +71,19 @@ public class Collisions {
return
value
-
o
.
value
;
}
@Override
public
String
toString
()
{
return
Integer
.
toString
(
value
);
}
}
private
static
final
int
ITEMS
=
5000
;
private
static
final
Object
KEYS
[][];
static
{
HashableInteger
UNIQUE_OBJECTS
[]
=
new
HashableInteger
[
ITEMS
];
HashableInteger
COLLIDING_OBJECTS
[]
=
new
HashableInteger
[
ITEMS
];
String
UNIQUE_STRINGS
[]
=
new
String
[
ITEMS
];
String
COLLIDING_STRINGS
[]
=
new
String
[
ITEMS
];
private
static
Object
[][]
makeTestData
(
int
size
)
{
HashableInteger
UNIQUE_OBJECTS
[]
=
new
HashableInteger
[
size
];
HashableInteger
COLLIDING_OBJECTS
[]
=
new
HashableInteger
[
size
];
String
UNIQUE_STRINGS
[]
=
new
String
[
size
];
String
COLLIDING_STRINGS
[]
=
new
String
[
size
];
for
(
int
i
=
0
;
i
<
ITEMS
;
i
++)
{
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
UNIQUE_OBJECTS
[
i
]
=
new
HashableInteger
(
i
,
Integer
.
MAX_VALUE
);
COLLIDING_OBJECTS
[
i
]
=
new
HashableInteger
(
i
,
10
);
UNIQUE_STRINGS
[
i
]
=
unhash
(
i
);
...
...
@@ -86,7 +92,7 @@ public class Collisions {
:
"\u0000\u0000\u0000\u0000\u0000"
+
COLLIDING_STRINGS
[
i
-
1
];
}
KEYS
=
new
Object
[][]
{
return
new
Object
[][]
{
new
Object
[]{
"Unique Objects"
,
UNIQUE_OBJECTS
},
new
Object
[]{
"Colliding Objects"
,
COLLIDING_OBJECTS
},
new
Object
[]{
"Unique Strings"
,
UNIQUE_STRINGS
},
...
...
@@ -132,23 +138,29 @@ public class Collisions {
}
private
static
void
realMain
(
String
[]
args
)
throws
Throwable
{
for
(
Object
[]
keys_desc
:
KEYS
)
{
Map
<
Object
,
Object
>[]
MAPS
=
(
Map
<
Object
,
Object
>[])
new
Map
[]{
new
Hashtable
<>(),
boolean
shortRun
=
args
.
length
>
0
&&
args
[
0
].
equals
(
"-shortrun"
);
Object
[][]
mapKeys
=
makeTestData
(
shortRun
?
(
TEST_SIZE
/
2
)
:
TEST_SIZE
);
// loop through data sets
for
(
Object
[]
keys_desc
:
mapKeys
)
{
Map
<
Object
,
Object
>[]
maps
=
(
Map
<
Object
,
Object
>[])
new
Map
[]{
new
HashMap
<>(),
new
Hashtable
<>(),
new
IdentityHashMap
<>(),
new
LinkedHashMap
<>(),
new
ConcurrentHashMap
<>(),
new
WeakHashMap
<>(),
new
TreeMap
<>(),
new
WeakHashMap
<>(),
new
ConcurrentHashMap
<>(),
new
ConcurrentSkipListMap
<>()
};
for
(
Map
<
Object
,
Object
>
map
:
MAPS
)
{
// for each map type.
for
(
Map
<
Object
,
Object
>
map
:
maps
)
{
String
desc
=
(
String
)
keys_desc
[
0
];
Object
[]
keys
=
(
Object
[])
keys_desc
[
1
];
try
{
testMap
(
map
,
desc
,
keys
);
testMap
(
map
,
desc
,
keys
);
}
catch
(
Exception
all
)
{
unexpected
(
"Failed for "
+
map
.
getClass
().
getName
()
+
" with "
+
desc
,
all
);
}
...
...
@@ -397,7 +409,7 @@ public class Collisions {
}
public
static
void
main
(
String
[]
args
)
throws
Throwable
{
Thread
.
currentThread
().
setName
(
"Collisions"
);
Thread
.
currentThread
().
setName
(
Collisions
.
class
.
getName
()
);
// Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
try
{
realMain
(
args
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录