Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
6bb3e708
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看板
提交
6bb3e708
编写于
8月 11, 2009
作者:
J
jcoomes
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6866585: debug code in ciObjectFactory too slow for large objects
Reviewed-by: ysr, never, kvn
上级
58b99338
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
22 addition
and
14 deletion
+22
-14
src/share/vm/ci/ciObjectFactory.cpp
src/share/vm/ci/ciObjectFactory.cpp
+19
-14
src/share/vm/runtime/globals.hpp
src/share/vm/runtime/globals.hpp
+3
-0
未找到文件。
src/share/vm/ci/ciObjectFactory.cpp
浏览文件 @
6bb3e708
...
@@ -219,24 +219,27 @@ ciObject* ciObjectFactory::get(oop key) {
...
@@ -219,24 +219,27 @@ ciObject* ciObjectFactory::get(oop key) {
ASSERT_IN_VM
;
ASSERT_IN_VM
;
#ifdef ASSERT
#ifdef ASSERT
if
(
CIObjectFactoryVerify
)
{
oop
last
=
NULL
;
oop
last
=
NULL
;
for
(
int
j
=
0
;
j
<
_ci_objects
->
length
();
j
++
)
{
for
(
int
j
=
0
;
j
<
_ci_objects
->
length
();
j
++
)
{
oop
o
=
_ci_objects
->
at
(
j
)
->
get_oop
();
oop
o
=
_ci_objects
->
at
(
j
)
->
get_oop
();
assert
(
last
<
o
,
"out of order"
);
assert
(
last
<
o
,
"out of order"
);
last
=
o
;
last
=
o
;
}
}
}
#endif // ASSERT
#endif // ASSERT
int
len
=
_ci_objects
->
length
();
int
len
=
_ci_objects
->
length
();
int
index
=
find
(
key
,
_ci_objects
);
int
index
=
find
(
key
,
_ci_objects
);
#ifdef ASSERT
#ifdef ASSERT
if
(
CIObjectFactoryVerify
)
{
for
(
int
i
=
0
;
i
<
_ci_objects
->
length
();
i
++
)
{
for
(
int
i
=
0
;
i
<
_ci_objects
->
length
();
i
++
)
{
if
(
_ci_objects
->
at
(
i
)
->
get_oop
()
==
key
)
{
if
(
_ci_objects
->
at
(
i
)
->
get_oop
()
==
key
)
{
assert
(
index
==
i
,
" bad lookup"
);
assert
(
index
==
i
,
" bad lookup"
);
}
}
}
}
}
#endif
#endif
if
(
!
is_found_at
(
index
,
key
,
_ci_objects
))
{
if
(
!
is_found_at
(
index
,
key
,
_ci_objects
))
{
// Check in the non-perm area before putting it in the list.
// Check in the non-perm area before putting it in the list.
NonPermObject
*
&
bucket
=
find_non_perm
(
key
);
NonPermObject
*
&
bucket
=
find_non_perm
(
key
);
if
(
bucket
!=
NULL
)
{
if
(
bucket
!=
NULL
)
{
...
@@ -539,12 +542,14 @@ void ciObjectFactory::insert(int index, ciObject* obj, GrowableArray<ciObject*>*
...
@@ -539,12 +542,14 @@ void ciObjectFactory::insert(int index, ciObject* obj, GrowableArray<ciObject*>*
objects
->
at_put
(
index
,
obj
);
objects
->
at_put
(
index
,
obj
);
}
}
#ifdef ASSERT
#ifdef ASSERT
if
(
CIObjectFactoryVerify
)
{
oop
last
=
NULL
;
oop
last
=
NULL
;
for
(
int
j
=
0
;
j
<
objects
->
length
();
j
++
)
{
for
(
int
j
=
0
;
j
<
objects
->
length
();
j
++
)
{
oop
o
=
objects
->
at
(
j
)
->
get_oop
();
oop
o
=
objects
->
at
(
j
)
->
get_oop
();
assert
(
last
<
o
,
"out of order"
);
assert
(
last
<
o
,
"out of order"
);
last
=
o
;
last
=
o
;
}
}
}
#endif // ASSERT
#endif // ASSERT
}
}
...
...
src/share/vm/runtime/globals.hpp
浏览文件 @
6bb3e708
...
@@ -3034,6 +3034,9 @@ class CommandLineFlags {
...
@@ -3034,6 +3034,9 @@ class CommandLineFlags {
"Wait for this many CI accesses to occur in all compiles before " \
"Wait for this many CI accesses to occur in all compiles before " \
"beginning to throw OutOfMemoryErrors in each compile") \
"beginning to throw OutOfMemoryErrors in each compile") \
\
\
notproduct(bool, CIObjectFactoryVerify, false, \
"enable potentially expensive verification in ciObjectFactory") \
\
/* Priorities */
\
/* Priorities */
\
product_pd(bool, UseThreadPriorities, "Use native thread priorities") \
product_pd(bool, UseThreadPriorities, "Use native thread priorities") \
\
\
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录