Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/hotspot/share/gc/parallel/psMemoryPool.cpp
41149 views
1
/*
2
* Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*
23
*/
24
25
#include "precompiled.hpp"
26
#include "gc/parallel/psMemoryPool.hpp"
27
28
PSGenerationPool::PSGenerationPool(PSOldGen* old_gen,
29
const char* name,
30
bool support_usage_threshold) :
31
CollectedMemoryPool(name, old_gen->capacity_in_bytes(),
32
old_gen->reserved().byte_size(), support_usage_threshold), _old_gen(old_gen) {
33
}
34
35
MemoryUsage PSGenerationPool::get_memory_usage() {
36
size_t maxSize = (available_for_allocation() ? max_size() : 0);
37
size_t used = used_in_bytes();
38
size_t committed = _old_gen->capacity_in_bytes();
39
40
return MemoryUsage(initial_size(), used, committed, maxSize);
41
}
42
43
// The max size of EdenMutableSpacePool =
44
// max size of the PSYoungGen - capacity of two survivor spaces
45
//
46
// Max size of PS eden space is changing due to ergonomic.
47
// PSYoungGen, PSOldGen, Eden, Survivor spaces are all resizable.
48
//
49
EdenMutableSpacePool::EdenMutableSpacePool(PSYoungGen* young_gen,
50
MutableSpace* space,
51
const char* name,
52
bool support_usage_threshold) :
53
CollectedMemoryPool(name, space->capacity_in_bytes(),
54
(young_gen->max_gen_size() -
55
young_gen->from_space()->capacity_in_bytes() -
56
young_gen->to_space()->capacity_in_bytes()),
57
support_usage_threshold),
58
_young_gen(young_gen),
59
_space(space) {
60
}
61
62
MemoryUsage EdenMutableSpacePool::get_memory_usage() {
63
size_t maxSize = (available_for_allocation() ? max_size() : 0);
64
size_t used = used_in_bytes();
65
size_t committed = _space->capacity_in_bytes();
66
67
return MemoryUsage(initial_size(), used, committed, maxSize);
68
}
69
70
// The max size of SurvivorMutableSpacePool =
71
// current capacity of the from-space
72
//
73
// PS from and to survivor spaces could have different sizes.
74
//
75
SurvivorMutableSpacePool::SurvivorMutableSpacePool(PSYoungGen* young_gen,
76
const char* name,
77
bool support_usage_threshold) :
78
CollectedMemoryPool(name, young_gen->from_space()->capacity_in_bytes(),
79
young_gen->from_space()->capacity_in_bytes(),
80
support_usage_threshold), _young_gen(young_gen) {
81
}
82
83
MemoryUsage SurvivorMutableSpacePool::get_memory_usage() {
84
size_t maxSize = (available_for_allocation() ? max_size() : 0);
85
size_t used = used_in_bytes();
86
size_t committed = committed_in_bytes();
87
return MemoryUsage(initial_size(), used, committed, maxSize);
88
}
89
90