Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
b96293be
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看板
提交
b96293be
编写于
12月 03, 2008
作者:
J
jmasa
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
7cb1ce9f
c2c7191b
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
28 addition
and
28 deletion
+28
-28
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
...ion/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+3
-3
src/share/vm/gc_implementation/g1/concurrentMark.cpp
src/share/vm/gc_implementation/g1/concurrentMark.cpp
+2
-2
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+1
-1
src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
+2
-2
src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+1
-1
src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
...are/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
+2
-2
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
.../gc_implementation/parallelScavenge/psParallelCompact.cpp
+1
-1
src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
...hare/vm/gc_implementation/parallelScavenge/psScavenge.cpp
+2
-2
src/share/vm/memory/defNewGeneration.cpp
src/share/vm/memory/defNewGeneration.cpp
+1
-1
src/share/vm/memory/genCollectedHeap.cpp
src/share/vm/memory/genCollectedHeap.cpp
+1
-1
src/share/vm/memory/genMarkSweep.cpp
src/share/vm/memory/genMarkSweep.cpp
+2
-2
src/share/vm/memory/referencePolicy.cpp
src/share/vm/memory/referencePolicy.cpp
+4
-4
src/share/vm/memory/referencePolicy.hpp
src/share/vm/memory/referencePolicy.hpp
+3
-3
src/share/vm/memory/referenceProcessor.cpp
src/share/vm/memory/referenceProcessor.cpp
+1
-1
src/share/vm/memory/referenceProcessor.hpp
src/share/vm/memory/referenceProcessor.hpp
+2
-2
未找到文件。
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
浏览文件 @
b96293be
...
...
@@ -1961,7 +1961,7 @@ void CMSCollector::do_compaction_work(bool clear_all_soft_refs) {
ref_processor
()
->
set_enqueuing_is_done
(
false
);
ref_processor
()
->
enable_discovery
();
ref_processor
()
->
s
na
p_policy
(
clear_all_soft_refs
);
ref_processor
()
->
s
etu
p_policy
(
clear_all_soft_refs
);
// If an asynchronous collection finishes, the _modUnionTable is
// all clear. If we are assuming the collection from an asynchronous
// collection, clear the _modUnionTable.
...
...
@@ -2386,7 +2386,7 @@ void CMSCollector::collect_in_foreground(bool clear_all_soft_refs) {
}
// Snapshot the soft reference policy to be used in this collection cycle.
ref_processor
()
->
s
na
p_policy
(
clear_all_soft_refs
);
ref_processor
()
->
s
etu
p_policy
(
clear_all_soft_refs
);
bool
init_mark_was_synchronous
=
false
;
// until proven otherwise
while
(
_collectorState
!=
Idling
)
{
...
...
@@ -5683,7 +5683,7 @@ void CMSCollector::refProcessingWork(bool asynch, bool clear_all_soft_refs) {
assert
(
rp
->
span
().
equals
(
_span
),
"Spans should be equal"
);
assert
(
!
rp
->
enqueuing_is_done
(),
"Enqueuing should not be complete"
);
// Process weak references.
rp
->
s
na
p_policy
(
clear_all_soft_refs
);
rp
->
s
etu
p_policy
(
clear_all_soft_refs
);
verify_work_stacks_empty
();
CMSKeepAliveClosure
cmsKeepAliveClosure
(
this
,
_span
,
&
_markBitMap
,
...
...
src/share/vm/gc_implementation/g1/concurrentMark.cpp
浏览文件 @
b96293be
...
...
@@ -811,7 +811,7 @@ void ConcurrentMark::checkpointRootsInitialPost() {
ReferenceProcessor
*
rp
=
g1h
->
ref_processor
();
rp
->
verify_no_references_recorded
();
rp
->
enable_discovery
();
// enable ("weak") refs discovery
rp
->
s
na
p_policy
(
false
);
// snapshot the soft ref policy to be used in this cycle
rp
->
s
etu
p_policy
(
false
);
// snapshot the soft ref policy to be used in this cycle
SATBMarkQueueSet
&
satb_mq_set
=
JavaThread
::
satb_mark_queue_set
();
satb_mq_set
.
set_process_completed_threshold
(
G1SATBProcessCompletedThreshold
);
...
...
@@ -1834,7 +1834,7 @@ void ConcurrentMark::weakRefsWork(bool clear_all_soft_refs) {
ReferenceProcessor
*
rp
=
g1h
->
ref_processor
();
// Process weak references.
rp
->
s
na
p_policy
(
clear_all_soft_refs
);
rp
->
s
etu
p_policy
(
clear_all_soft_refs
);
assert
(
_markStack
.
isEmpty
(),
"mark stack should be empty"
);
G1CMIsAliveClosure
g1IsAliveClosure
(
g1h
);
...
...
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
浏览文件 @
b96293be
...
...
@@ -891,7 +891,7 @@ void G1CollectedHeap::do_collection(bool full, bool clear_all_soft_refs,
ReferenceProcessorIsAliveMutator
rp_is_alive_null
(
ref_processor
(),
NULL
);
ref_processor
()
->
enable_discovery
();
ref_processor
()
->
s
na
p_policy
(
clear_all_soft_refs
);
ref_processor
()
->
s
etu
p_policy
(
clear_all_soft_refs
);
// Do collection work
{
...
...
src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
浏览文件 @
b96293be
...
...
@@ -35,7 +35,7 @@ void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp,
assert
(
GenMarkSweep
::
ref_processor
()
==
NULL
,
"no stomping"
);
assert
(
rp
!=
NULL
,
"should be non-NULL"
);
GenMarkSweep
::
_ref_processor
=
rp
;
rp
->
s
na
p_policy
(
clear_all_softrefs
);
rp
->
s
etu
p_policy
(
clear_all_softrefs
);
// When collecting the permanent generation methodOops may be moving,
// so we either have to flush all bcp data or convert it into bci.
...
...
@@ -123,7 +123,7 @@ void G1MarkSweep::mark_sweep_phase1(bool& marked_for_unloading,
// Process reference objects found during marking
ReferenceProcessor
*
rp
=
GenMarkSweep
::
ref_processor
();
rp
->
s
na
p_policy
(
clear_all_softrefs
);
rp
->
s
etu
p_policy
(
clear_all_softrefs
);
rp
->
process_discovered_references
(
&
GenMarkSweep
::
is_alive
,
&
GenMarkSweep
::
keep_alive
,
&
GenMarkSweep
::
follow_stack_closure
,
...
...
src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
浏览文件 @
b96293be
...
...
@@ -773,7 +773,7 @@ void ParNewGeneration::collect(bool full,
set_promo_failure_scan_stack_closure
(
&
scan_without_gc_barrier
);
EvacuateFollowersClosureGeneral
evacuate_followers
(
gch
,
_level
,
&
scan_without_gc_barrier
,
&
scan_with_gc_barrier
);
rp
->
s
na
p_policy
(
clear_all_soft_refs
);
rp
->
s
etu
p_policy
(
clear_all_soft_refs
);
if
(
rp
->
processing_is_mt
())
{
ParNewRefProcTaskExecutor
task_executor
(
*
this
,
thread_state_set
);
rp
->
process_discovered_references
(
&
is_alive
,
&
keep_alive
,
...
...
src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
浏览文件 @
b96293be
...
...
@@ -172,7 +172,7 @@ void PSMarkSweep::invoke_no_policy(bool clear_all_softrefs) {
COMPILER2_PRESENT
(
DerivedPointerTable
::
clear
());
ref_processor
()
->
enable_discovery
();
ref_processor
()
->
s
na
p_policy
(
clear_all_softrefs
);
ref_processor
()
->
s
etu
p_policy
(
clear_all_softrefs
);
mark_sweep_phase1
(
clear_all_softrefs
);
...
...
@@ -518,7 +518,7 @@ void PSMarkSweep::mark_sweep_phase1(bool clear_all_softrefs) {
// Process reference objects found during marking
{
ref_processor
()
->
s
na
p_policy
(
clear_all_softrefs
);
ref_processor
()
->
s
etu
p_policy
(
clear_all_softrefs
);
ref_processor
()
->
process_discovered_references
(
is_alive_closure
(),
mark_and_push_closure
(),
follow_stack_closure
(),
NULL
);
}
...
...
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
浏览文件 @
b96293be
...
...
@@ -1578,7 +1578,7 @@ void PSParallelCompact::invoke_no_policy(bool maximum_heap_compaction) {
COMPILER2_PRESENT
(
DerivedPointerTable
::
clear
());
ref_processor
()
->
enable_discovery
();
ref_processor
()
->
s
na
p_policy
(
maximum_heap_compaction
);
ref_processor
()
->
s
etu
p_policy
(
maximum_heap_compaction
);
bool
marked_for_unloading
=
false
;
...
...
src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
浏览文件 @
b96293be
...
...
@@ -330,7 +330,7 @@ bool PSScavenge::invoke_no_policy() {
COMPILER2_PRESENT
(
DerivedPointerTable
::
clear
());
reference_processor
()
->
enable_discovery
();
reference_processor
()
->
s
na
p_policy
(
false
);
reference_processor
()
->
s
etu
p_policy
(
false
);
// We track how much was promoted to the next generation for
// the AdaptiveSizePolicy.
...
...
@@ -395,7 +395,7 @@ bool PSScavenge::invoke_no_policy() {
// Process reference objects discovered during scavenge
{
reference_processor
()
->
s
na
p_policy
(
false
);
// not always_clear
reference_processor
()
->
s
etu
p_policy
(
false
);
// not always_clear
PSKeepAliveClosure
keep_alive
(
promotion_manager
);
PSEvacuateFollowersClosure
evac_followers
(
promotion_manager
);
if
(
reference_processor
()
->
processing_is_mt
())
{
...
...
src/share/vm/memory/defNewGeneration.cpp
浏览文件 @
b96293be
...
...
@@ -567,7 +567,7 @@ void DefNewGeneration::collect(bool full,
FastKeepAliveClosure
keep_alive
(
this
,
&
scan_weak_ref
);
ReferenceProcessor
*
rp
=
ref_processor
();
rp
->
s
na
p_policy
(
clear_all_soft_refs
);
rp
->
s
etu
p_policy
(
clear_all_soft_refs
);
rp
->
process_discovered_references
(
&
is_alive
,
&
keep_alive
,
&
evacuate_followers
,
NULL
);
if
(
!
promotion_failed
())
{
...
...
src/share/vm/memory/genCollectedHeap.cpp
浏览文件 @
b96293be
...
...
@@ -525,7 +525,7 @@ void GenCollectedHeap::do_collection(bool full,
if
(
rp
->
discovery_is_atomic
())
{
rp
->
verify_no_references_recorded
();
rp
->
enable_discovery
();
rp
->
s
na
p_policy
(
clear_all_soft_refs
);
rp
->
s
etu
p_policy
(
clear_all_soft_refs
);
}
else
{
// collect() below will enable discovery as appropriate
}
...
...
src/share/vm/memory/genMarkSweep.cpp
浏览文件 @
b96293be
...
...
@@ -33,7 +33,7 @@ void GenMarkSweep::invoke_at_safepoint(int level, ReferenceProcessor* rp,
assert
(
ref_processor
()
==
NULL
,
"no stomping"
);
assert
(
rp
!=
NULL
,
"should be non-NULL"
);
_ref_processor
=
rp
;
rp
->
s
na
p_policy
(
clear_all_softrefs
);
rp
->
s
etu
p_policy
(
clear_all_softrefs
);
TraceTime
t1
(
"Full GC"
,
PrintGC
&&
!
PrintGCDetails
,
true
,
gclog_or_tty
);
...
...
@@ -246,7 +246,7 @@ void GenMarkSweep::mark_sweep_phase1(int level,
// Process reference objects found during marking
{
ref_processor
()
->
s
na
p_policy
(
clear_all_softrefs
);
ref_processor
()
->
s
etu
p_policy
(
clear_all_softrefs
);
ref_processor
()
->
process_discovered_references
(
&
is_alive
,
&
keep_alive
,
&
follow_stack_closure
,
NULL
);
}
...
...
src/share/vm/memory/referencePolicy.cpp
浏览文件 @
b96293be
...
...
@@ -26,11 +26,11 @@
# include "incls/_referencePolicy.cpp.incl"
LRUCurrentHeapPolicy
::
LRUCurrentHeapPolicy
()
{
s
na
p
();
s
etu
p
();
}
// Capture state (of-the-VM) information needed to evaluate the policy
void
LRUCurrentHeapPolicy
::
s
na
p
()
{
void
LRUCurrentHeapPolicy
::
s
etu
p
()
{
_max_interval
=
(
Universe
::
get_heap_free_at_last_gc
()
/
M
)
*
SoftRefLRUPolicyMSPerMB
;
assert
(
_max_interval
>=
0
,
"Sanity check"
);
}
...
...
@@ -52,11 +52,11 @@ bool LRUCurrentHeapPolicy::should_clear_reference(oop p) {
/////////////////////// MaxHeap //////////////////////
LRUMaxHeapPolicy
::
LRUMaxHeapPolicy
()
{
s
na
p
();
s
etu
p
();
}
// Capture state (of-the-VM) information needed to evaluate the policy
void
LRUMaxHeapPolicy
::
s
na
p
()
{
void
LRUMaxHeapPolicy
::
s
etu
p
()
{
size_t
max_heap
=
MaxHeapSize
;
max_heap
-=
Universe
::
get_heap_used_at_last_gc
();
max_heap
/=
M
;
...
...
src/share/vm/memory/referencePolicy.hpp
浏览文件 @
b96293be
...
...
@@ -30,7 +30,7 @@ class ReferencePolicy : public CHeapObj {
public:
virtual
bool
should_clear_reference
(
oop
p
)
{
ShouldNotReachHere
();
return
true
;
}
// Capture state (of-the-VM) information needed to evaluate the policy
virtual
void
s
na
p
()
{
/* do nothing */
}
virtual
void
s
etu
p
()
{
/* do nothing */
}
};
class
NeverClearPolicy
:
public
ReferencePolicy
{
...
...
@@ -51,7 +51,7 @@ class LRUCurrentHeapPolicy : public ReferencePolicy {
LRUCurrentHeapPolicy
();
// Capture state (of-the-VM) information needed to evaluate the policy
void
s
na
p
();
void
s
etu
p
();
bool
should_clear_reference
(
oop
p
);
};
...
...
@@ -63,6 +63,6 @@ class LRUMaxHeapPolicy : public ReferencePolicy {
LRUMaxHeapPolicy
();
// Capture state (of-the-VM) information needed to evaluate the policy
void
s
na
p
();
void
s
etu
p
();
bool
should_clear_reference
(
oop
p
);
};
src/share/vm/memory/referenceProcessor.cpp
浏览文件 @
b96293be
...
...
@@ -115,7 +115,7 @@ ReferenceProcessor::create_ref_processor(MemRegion span,
vm_exit_during_initialization
(
"Could not allocate ReferenceProcessor object"
);
}
rp
->
set_is_alive_non_header
(
is_alive_non_header
);
rp
->
s
na
p_policy
(
false
/* default soft ref policy */
);
rp
->
s
etu
p_policy
(
false
/* default soft ref policy */
);
return
rp
;
}
...
...
src/share/vm/memory/referenceProcessor.hpp
浏览文件 @
b96293be
...
...
@@ -98,10 +98,10 @@ class ReferenceProcessor : public CHeapObj {
DiscoveredList
*
discovered_soft_refs
()
{
return
_discoveredSoftRefs
;
}
static
oop
sentinel_ref
()
{
return
_sentinelRef
;
}
static
oop
*
adr_sentinel_ref
()
{
return
&
_sentinelRef
;
}
ReferencePolicy
*
s
na
p_policy
(
bool
always_clear
)
{
ReferencePolicy
*
s
etu
p_policy
(
bool
always_clear
)
{
_current_soft_ref_policy
=
always_clear
?
_always_clear_soft_ref_policy
:
_default_soft_ref_policy
;
_current_soft_ref_policy
->
s
na
p
();
// snapshot the policy threshold
_current_soft_ref_policy
->
s
etu
p
();
// snapshot the policy threshold
return
_current_soft_ref_policy
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录