Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
1c6a3923
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看板
提交
1c6a3923
编写于
4月 08, 2011
作者:
J
jmasa
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
a38c2c73
44f5f047
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
40 addition
and
100 deletion
+40
-100
src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp
src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp
+1
-5
src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp
src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp
+1
-4
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
.../gc_implementation/parallelScavenge/psParallelCompact.cpp
+13
-37
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
.../gc_implementation/parallelScavenge/psParallelCompact.hpp
+0
-3
src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp
...share/vm/gc_implementation/parallelScavenge/psPermGen.cpp
+1
-7
src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp
...share/vm/gc_implementation/parallelScavenge/psPermGen.hpp
+1
-4
src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp
...hare/vm/gc_implementation/parallelScavenge/psYoungGen.cpp
+1
-7
src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp
...hare/vm/gc_implementation/parallelScavenge/psYoungGen.hpp
+1
-4
src/share/vm/runtime/arguments.cpp
src/share/vm/runtime/arguments.cpp
+21
-19
src/share/vm/runtime/globals.hpp
src/share/vm/runtime/globals.hpp
+0
-10
未找到文件。
src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp
浏览文件 @
1c6a3923
/*
* Copyright (c) 2001, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
1
, 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
...
...
@@ -176,10 +176,6 @@ void PSOldGen::compact() {
object_mark_sweep
()
->
compact
(
ZapUnusedHeapArea
);
}
void
PSOldGen
::
move_and_update
(
ParCompactionManager
*
cm
)
{
PSParallelCompact
::
move_and_update
(
cm
,
PSParallelCompact
::
old_space_id
);
}
size_t
PSOldGen
::
contiguous_available
()
const
{
return
object_space
()
->
free_in_bytes
()
+
virtual_space
()
->
uncommitted_size
();
}
...
...
src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp
浏览文件 @
1c6a3923
/*
* Copyright (c) 2001, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
1
, 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
...
...
@@ -143,9 +143,6 @@ class PSOldGen : public CHeapObj {
void
adjust_pointers
();
void
compact
();
// Parallel old
virtual
void
move_and_update
(
ParCompactionManager
*
cm
);
// Size info
size_t
capacity_in_bytes
()
const
{
return
object_space
()
->
capacity_in_bytes
();
}
size_t
used_in_bytes
()
const
{
return
object_space
()
->
used_in_bytes
();
}
...
...
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
浏览文件 @
1c6a3923
...
...
@@ -2104,11 +2104,7 @@ void PSParallelCompact::invoke_no_policy(bool maximum_heap_compaction) {
// klasses are used in the update of an object?
compact_perm
(
vmthread_cm
);
if
(
UseParallelOldGCCompacting
)
{
compact
();
}
else
{
compact_serial
(
vmthread_cm
);
}
compact
();
// Reset the mark bitmap, summary data, and do other bookkeeping. Must be
// done before resizing.
...
...
@@ -2582,18 +2578,16 @@ void PSParallelCompact::enqueue_dense_prefix_tasks(GCTaskQueue* q,
// each thread?
if
(
total_dense_prefix_regions
>
0
)
{
uint
tasks_for_dense_prefix
=
1
;
if
(
UseParallelDensePrefixUpdate
)
{
if
(
total_dense_prefix_regions
<=
(
parallel_gc_threads
*
PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING
))
{
// Don't over partition. This assumes that
// PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING is a small integer value
// so there are not many regions to process.
tasks_for_dense_prefix
=
parallel_gc_threads
;
}
else
{
// Over partition
tasks_for_dense_prefix
=
parallel_gc_threads
*
PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING
;
}
if
(
total_dense_prefix_regions
<=
(
parallel_gc_threads
*
PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING
))
{
// Don't over partition. This assumes that
// PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING is a small integer value
// so there are not many regions to process.
tasks_for_dense_prefix
=
parallel_gc_threads
;
}
else
{
// Over partition
tasks_for_dense_prefix
=
parallel_gc_threads
*
PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING
;
}
size_t
regions_per_thread
=
total_dense_prefix_regions
/
tasks_for_dense_prefix
;
...
...
@@ -2733,21 +2727,6 @@ void PSParallelCompact::verify_complete(SpaceId space_id) {
}
#endif // #ifdef ASSERT
void
PSParallelCompact
::
compact_serial
(
ParCompactionManager
*
cm
)
{
EventMark
m
(
"5 compact serial"
);
TraceTime
tm
(
"compact serial"
,
print_phases
(),
true
,
gclog_or_tty
);
ParallelScavengeHeap
*
heap
=
(
ParallelScavengeHeap
*
)
Universe
::
heap
();
assert
(
heap
->
kind
()
==
CollectedHeap
::
ParallelScavengeHeap
,
"Sanity"
);
PSYoungGen
*
young_gen
=
heap
->
young_gen
();
PSOldGen
*
old_gen
=
heap
->
old_gen
();
old_gen
->
start_array
()
->
reset
();
old_gen
->
move_and_update
(
cm
);
young_gen
->
move_and_update
(
cm
);
}
void
PSParallelCompact
::
follow_weak_klass_links
()
{
// All klasses on the revisit stack are marked at this point.
...
...
@@ -3530,11 +3509,8 @@ PSParallelCompact::VerifyUpdateClosure::do_addr(HeapWord* addr, size_t words) {
"Object liveness is wrong."
);
return
ParMarkBitMap
::
incomplete
;
}
assert
(
UseParallelOldGCDensePrefix
||
(
HeapMaximumCompactionInterval
>
1
)
||
(
MarkSweepAlwaysCompactCount
>
1
)
||
(
forwarding_ptr
==
new_pointer
),
"Calculation of new location is incorrect"
);
assert
(
HeapMaximumCompactionInterval
>
1
||
MarkSweepAlwaysCompactCount
>
1
||
forwarding_ptr
==
new_pointer
,
"new location is incorrect"
);
return
ParMarkBitMap
::
incomplete
;
}
...
...
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
浏览文件 @
1c6a3923
...
...
@@ -1027,9 +1027,6 @@ class PSParallelCompact : AllStatic {
ParallelTaskTerminator
*
terminator_ptr
,
uint
parallel_gc_threads
);
// For debugging only - compacts the old gen serially
static
void
compact_serial
(
ParCompactionManager
*
cm
);
// If objects are left in eden after a collection, try to move the boundary
// and absorb them into the old gen. Returns true if eden was emptied.
static
bool
absorb_live_data_from_eden
(
PSAdaptiveSizePolicy
*
size_policy
,
...
...
src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp
浏览文件 @
1c6a3923
/*
* Copyright (c) 2001, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
1
, 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
...
...
@@ -121,12 +121,6 @@ void PSPermGen::compute_new_size(size_t used_before_collection) {
}
}
void
PSPermGen
::
move_and_update
(
ParCompactionManager
*
cm
)
{
PSParallelCompact
::
move_and_update
(
cm
,
PSParallelCompact
::
perm_space_id
);
}
void
PSPermGen
::
precompact
()
{
// Reset start array first.
_start_array
.
reset
();
...
...
src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp
浏览文件 @
1c6a3923
/*
* Copyright (c) 2001, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
1
, 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
...
...
@@ -51,9 +51,6 @@ class PSPermGen : public PSOldGen {
// MarkSweep code
virtual
void
precompact
();
// Parallel old
virtual
void
move_and_update
(
ParCompactionManager
*
cm
);
virtual
const
char
*
name
()
const
{
return
"PSPermGen"
;
}
};
...
...
src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp
浏览文件 @
1c6a3923
/*
* Copyright (c) 2001, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
1
, 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
...
...
@@ -792,12 +792,6 @@ void PSYoungGen::compact() {
to_mark_sweep
()
->
compact
(
false
);
}
void
PSYoungGen
::
move_and_update
(
ParCompactionManager
*
cm
)
{
PSParallelCompact
::
move_and_update
(
cm
,
PSParallelCompact
::
eden_space_id
);
PSParallelCompact
::
move_and_update
(
cm
,
PSParallelCompact
::
from_space_id
);
PSParallelCompact
::
move_and_update
(
cm
,
PSParallelCompact
::
to_space_id
);
}
void
PSYoungGen
::
print
()
const
{
print_on
(
tty
);
}
void
PSYoungGen
::
print_on
(
outputStream
*
st
)
const
{
st
->
print
(
" %-15s"
,
"PSYoungGen"
);
...
...
src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp
浏览文件 @
1c6a3923
/*
* Copyright (c) 2001, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 201
1
, 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
...
...
@@ -127,9 +127,6 @@ class PSYoungGen : public CHeapObj {
void
adjust_pointers
();
void
compact
();
// Parallel Old
void
move_and_update
(
ParCompactionManager
*
cm
);
// Called during/after gc
void
swap_spaces
();
...
...
src/share/vm/runtime/arguments.cpp
浏览文件 @
1c6a3923
...
...
@@ -243,6 +243,12 @@ static ObsoleteFlag obsolete_jvm_flags[] = {
{
"MaxLiveObjectEvacuationRatio"
,
JDK_Version
::
jdk_update
(
6
,
24
),
JDK_Version
::
jdk
(
8
)
},
{
"ForceSharedSpaces"
,
JDK_Version
::
jdk_update
(
6
,
25
),
JDK_Version
::
jdk
(
8
)
},
{
"UseParallelOldGCCompacting"
,
JDK_Version
::
jdk_update
(
6
,
27
),
JDK_Version
::
jdk
(
8
)
},
{
"UseParallelDensePrefixUpdate"
,
JDK_Version
::
jdk_update
(
6
,
27
),
JDK_Version
::
jdk
(
8
)
},
{
"UseParallelOldGCDensePrefix"
,
JDK_Version
::
jdk_update
(
6
,
27
),
JDK_Version
::
jdk
(
8
)
},
{
NULL
,
JDK_Version
(
0
),
JDK_Version
(
0
)
}
};
...
...
@@ -799,26 +805,22 @@ bool Arguments::process_argument(const char* arg,
JDK_Version
since
=
JDK_Version
();
if
(
parse_argument
(
arg
,
origin
))
{
// do nothing
}
else
if
(
is_newly_obsolete
(
arg
,
&
since
))
{
enum
{
bufsize
=
256
};
char
buffer
[
bufsize
];
since
.
to_string
(
buffer
,
bufsize
);
jio_fprintf
(
defaultStream
::
error_stream
(),
"Warning: The flag %s has been EOL'd as of %s and will"
" be ignored
\n
"
,
arg
,
buffer
);
}
else
{
if
(
!
ignore_unrecognized
)
{
jio_fprintf
(
defaultStream
::
error_stream
(),
"Unrecognized VM option '%s'
\n
"
,
arg
);
// allow for commandline "commenting out" options like -XX:#+Verbose
if
(
strlen
(
arg
)
==
0
||
arg
[
0
]
!=
'#'
)
{
return
false
;
}
}
if
(
parse_argument
(
arg
,
origin
)
||
ignore_unrecognized
)
{
return
true
;
}
return
true
;
const
char
*
const
argname
=
*
arg
==
'+'
||
*
arg
==
'-'
?
arg
+
1
:
arg
;
if
(
is_newly_obsolete
(
arg
,
&
since
))
{
char
version
[
256
];
since
.
to_string
(
version
,
sizeof
(
version
));
warning
(
"ignoring option %s; support was removed in %s"
,
argname
,
version
);
return
true
;
}
jio_fprintf
(
defaultStream
::
error_stream
(),
"Unrecognized VM option '%s'
\n
"
,
argname
);
// allow for commandline "commenting out" options like -XX:#+Verbose
return
arg
[
0
]
==
'#'
;
}
bool
Arguments
::
process_settings_file
(
const
char
*
file_name
,
bool
should_exist
,
jboolean
ignore_unrecognized
)
{
...
...
src/share/vm/runtime/globals.hpp
浏览文件 @
1c6a3923
...
...
@@ -1355,13 +1355,6 @@ class CommandLineFlags {
product(bool, UseParallelOldGC, false, \
"Use the Parallel Old garbage collector") \
\
product(bool, UseParallelOldGCCompacting, true, \
"In the Parallel Old garbage collector use parallel compaction") \
\
product(bool, UseParallelDensePrefixUpdate, true, \
"In the Parallel Old garbage collector use parallel dense" \
" prefix update") \
\
product(uintx, HeapMaximumCompactionInterval, 20, \
"How often should we maximally compact the heap (not allowing " \
"any dead space)") \
...
...
@@ -1381,9 +1374,6 @@ class CommandLineFlags {
"The standard deviation used by the par compact dead wood" \
"limiter (a number between 0-100).") \
\
product(bool, UseParallelOldGCDensePrefix, true, \
"Use a dense prefix with the Parallel Old garbage collector") \
\
product(uintx, ParallelGCThreads, 0, \
"Number of parallel threads parallel gc will use") \
\
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录