Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
24774735
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看板
提交
24774735
编写于
5月 08, 2013
作者:
D
dholmes
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
8545ccc6
e151e063
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
64 addition
and
47 deletion
+64
-47
agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java
agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java
+2
-2
agent/src/share/classes/sun/jvm/hotspot/oops/Method.java
agent/src/share/classes/sun/jvm/hotspot/oops/Method.java
+23
-15
agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java
agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java
+2
-2
src/share/vm/code/nmethod.cpp
src/share/vm/code/nmethod.cpp
+14
-0
src/share/vm/prims/jvmtiRedefineClasses.cpp
src/share/vm/prims/jvmtiRedefineClasses.cpp
+4
-0
src/share/vm/runtime/arguments.cpp
src/share/vm/runtime/arguments.cpp
+19
-28
未找到文件。
agent/src/share/classes/sun/jvm/hotspot/ci/ciMethod.java
浏览文件 @
24774735
...
...
@@ -97,8 +97,8 @@ public class ciMethod extends ciMetadata {
holder
.
getName
().
asString
()
+
" "
+
OopUtilities
.
escapeString
(
method
.
getName
().
asString
())
+
" "
+
method
.
getSignature
().
asString
()
+
" "
+
method
.
getInvocationCount
er
()
+
" "
+
method
.
getBackedgeCount
er
()
+
" "
+
method
.
getInvocationCount
()
+
" "
+
method
.
getBackedgeCount
()
+
" "
+
interpreterInvocationCount
()
+
" "
+
interpreterThrowoutCount
()
+
" "
+
instructionsSize
());
...
...
agent/src/share/classes/sun/jvm/hotspot/oops/Method.java
浏览文件 @
24774735
...
...
@@ -24,15 +24,21 @@
package
sun.jvm.hotspot.oops
;
import
java.io.*
;
import
java.util.*
;
import
sun.jvm.hotspot.code.*
;
import
sun.jvm.hotspot.debugger.*
;
import
sun.jvm.hotspot.interpreter.*
;
import
sun.jvm.hotspot.memory.*
;
import
sun.jvm.hotspot.runtime.*
;
import
sun.jvm.hotspot.types.*
;
import
sun.jvm.hotspot.utilities.*
;
import
java.io.PrintStream
;
import
java.util.Observable
;
import
java.util.Observer
;
import
sun.jvm.hotspot.code.NMethod
;
import
sun.jvm.hotspot.debugger.Address
;
import
sun.jvm.hotspot.interpreter.OopMapCacheEntry
;
import
sun.jvm.hotspot.runtime.SignatureConverter
;
import
sun.jvm.hotspot.runtime.VM
;
import
sun.jvm.hotspot.runtime.VMObjectFactory
;
import
sun.jvm.hotspot.types.AddressField
;
import
sun.jvm.hotspot.types.Type
;
import
sun.jvm.hotspot.types.TypeDataBase
;
import
sun.jvm.hotspot.types.WrongTypeException
;
import
sun.jvm.hotspot.utilities.Assert
;
// A Method represents a Java method
...
...
@@ -132,11 +138,13 @@ public class Method extends Metadata {
public
long
getAccessFlags
()
{
return
accessFlags
.
getValue
(
this
);
}
public
long
getCodeSize
()
{
return
getConstMethod
().
getCodeSize
();
}
public
long
getVtableIndex
()
{
return
vtableIndex
.
getValue
(
this
);
}
public
long
getInvocationCounter
()
{
return
getMethodCounters
().
getInvocationCounter
();
public
long
getInvocationCount
()
{
MethodCounters
mc
=
getMethodCounters
();
return
mc
==
null
?
0
:
mc
.
getInvocationCounter
();
}
public
long
getBackedgeCounter
()
{
return
getMethodCounters
().
getBackedgeCounter
();
public
long
getBackedgeCount
()
{
MethodCounters
mc
=
getMethodCounters
();
return
mc
==
null
?
0
:
mc
.
getBackedgeCounter
();
}
// get associated compiled native method, if available, else return null.
...
...
@@ -349,8 +357,8 @@ public class Method extends Metadata {
holder
.
getName
().
asString
()
+
" "
+
OopUtilities
.
escapeString
(
getName
().
asString
())
+
" "
+
getSignature
().
asString
()
+
" "
+
getInvocationCount
er
()
+
" "
+
getBackedgeCount
er
()
+
" "
+
getInvocationCount
()
+
" "
+
getBackedgeCount
()
+
" "
+
interpreterInvocationCount
()
+
" "
+
interpreterThrowoutCount
()
+
" "
+
code_size
);
...
...
agent/src/share/classes/sun/jvm/hotspot/oops/MethodData.java
浏览文件 @
24774735
...
...
@@ -316,8 +316,8 @@ public class MethodData extends Metadata {
int
iic
=
method
.
interpreterInvocationCount
();
if
(
mileage
<
iic
)
mileage
=
iic
;
long
ic
=
method
.
getInvocationCount
er
();
long
bc
=
method
.
getBackedgeCount
er
();
long
ic
=
method
.
getInvocationCount
();
long
bc
=
method
.
getBackedgeCount
();
long
icval
=
ic
>>
3
;
if
((
ic
&
4
)
!=
0
)
icval
+=
CompileThreshold
;
...
...
src/share/vm/code/nmethod.cpp
浏览文件 @
24774735
...
...
@@ -1794,6 +1794,19 @@ void nmethod::metadata_do(void f(Metadata*)) {
Metadata
*
md
=
r
->
metadata_value
();
f
(
md
);
}
}
else
if
(
iter
.
type
()
==
relocInfo
::
virtual_call_type
)
{
// Check compiledIC holders associated with this nmethod
CompiledIC
*
ic
=
CompiledIC_at
(
iter
.
reloc
());
if
(
ic
->
is_icholder_call
())
{
CompiledICHolder
*
cichk
=
ic
->
cached_icholder
();
f
(
cichk
->
holder_method
());
f
(
cichk
->
holder_klass
());
}
else
{
Metadata
*
ic_oop
=
ic
->
cached_metadata
();
if
(
ic_oop
!=
NULL
)
{
f
(
ic_oop
);
}
}
}
}
}
...
...
@@ -1804,6 +1817,7 @@ void nmethod::metadata_do(void f(Metadata*)) {
Metadata
*
md
=
*
p
;
f
(
md
);
}
// Call function Method*, not embedded in these other places.
if
(
_method
!=
NULL
)
f
(
_method
);
}
...
...
src/share/vm/prims/jvmtiRedefineClasses.cpp
浏览文件 @
24774735
...
...
@@ -3366,6 +3366,10 @@ void VM_RedefineClasses::redefine_single_class(jclass the_jclass,
}
#endif
// NULL out in scratch class to not delete twice. The class to be redefined
// always owns these bytes.
scratch_class
->
set_cached_class_file
(
NULL
,
0
);
// Replace inner_classes
Array
<
u2
>*
old_inner_classes
=
the_class
->
inner_classes
();
the_class
->
set_inner_classes
(
scratch_class
->
inner_classes
());
...
...
src/share/vm/runtime/arguments.cpp
浏览文件 @
24774735
...
...
@@ -3104,36 +3104,27 @@ jint Arguments::parse_options_environment_variable(const char* name, SysClassPat
}
void
Arguments
::
set_shared_spaces_flags
()
{
const
bool
must_share
=
DumpSharedSpaces
||
RequireSharedSpaces
;
const
bool
might_share
=
must_share
||
UseSharedSpaces
;
// CompressedOops cannot be used with CDS. The offsets of oopmaps and
// static fields are incorrect in the archive. With some more clever
// initialization, this restriction can probably be lifted.
// ??? UseLargePages might be okay now
const
bool
cannot_share
=
UseCompressedOops
||
(
UseLargePages
&&
FLAG_IS_CMDLINE
(
UseLargePages
));
if
(
cannot_share
)
{
if
(
must_share
)
{
warning
(
"disabling large pages %s"
"because of %s"
,
""
LP64_ONLY
(
"and compressed oops "
),
DumpSharedSpaces
?
"-Xshare:dump"
:
"-Xshare:on"
);
FLAG_SET_CMDLINE
(
bool
,
UseLargePages
,
false
);
LP64_ONLY
(
FLAG_SET_CMDLINE
(
bool
,
UseCompressedOops
,
false
));
LP64_ONLY
(
FLAG_SET_CMDLINE
(
bool
,
UseCompressedKlassPointers
,
false
));
}
else
{
// Prefer compressed oops and large pages to class data sharing
if
(
UseSharedSpaces
&&
Verbose
)
{
warning
(
"turning off use of shared archive because of large pages%s"
,
""
LP64_ONLY
(
" and/or compressed oops"
));
#ifdef _LP64
const
bool
must_share
=
DumpSharedSpaces
||
RequireSharedSpaces
;
// CompressedOops cannot be used with CDS. The offsets of oopmaps and
// static fields are incorrect in the archive. With some more clever
// initialization, this restriction can probably be lifted.
if
(
UseCompressedOops
)
{
if
(
must_share
)
{
warning
(
"disabling compressed oops because of %s"
,
DumpSharedSpaces
?
"-Xshare:dump"
:
"-Xshare:on"
);
FLAG_SET_CMDLINE
(
bool
,
UseCompressedOops
,
false
);
FLAG_SET_CMDLINE
(
bool
,
UseCompressedKlassPointers
,
false
);
}
else
{
// Prefer compressed oops to class data sharing
if
(
UseSharedSpaces
&&
Verbose
)
{
warning
(
"turning off use of shared archive because of compressed oops"
);
}
no_shared_spaces
();
}
no_shared_spaces
();
}
}
else
if
(
UseLargePages
&&
might_share
)
{
// Disable large pages to allow shared spaces. This is sub-optimal, since
// there may not even be a shared archive to use.
FLAG_SET_DEFAULT
(
UseLargePages
,
false
);
}
#endif
if
(
DumpSharedSpaces
)
{
if
(
RequireSharedSpaces
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录