comparison src/share/vm/services/memoryService.hpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents 78542e2b5e35
children dbd5837b342f
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 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 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
38 class CollectedHeap; 38 class CollectedHeap;
39 class Generation; 39 class Generation;
40 class DefNewGeneration; 40 class DefNewGeneration;
41 class PSYoungGen; 41 class PSYoungGen;
42 class PSOldGen; 42 class PSOldGen;
43 class PSPermGen;
44 class CodeHeap; 43 class CodeHeap;
45 class ContiguousSpace; 44 class ContiguousSpace;
46 class CompactibleFreeListSpace; 45 class CompactibleFreeListSpace;
47 class PermanentGenerationSpec;
48 class GenCollectedHeap; 46 class GenCollectedHeap;
49 class ParallelScavengeHeap; 47 class ParallelScavengeHeap;
50 class CompactingPermGenGen;
51 class CMSPermGenGen;
52 class G1CollectedHeap; 48 class G1CollectedHeap;
53 49
54 // VM Monitoring and Management Support 50 // VM Monitoring and Management Support
55 51
56 class MemoryService : public AllStatic { 52 class MemoryService : public AllStatic {
83 static void add_generation_memory_pool(Generation* gen, 79 static void add_generation_memory_pool(Generation* gen,
84 MemoryManager* major_mgr) { 80 MemoryManager* major_mgr) {
85 add_generation_memory_pool(gen, major_mgr, NULL); 81 add_generation_memory_pool(gen, major_mgr, NULL);
86 } 82 }
87 83
88 static void add_compact_perm_gen_memory_pool(CompactingPermGenGen* perm_gen,
89 MemoryManager* mgr);
90 static void add_cms_perm_gen_memory_pool(CMSPermGenGen* perm_gen,
91 MemoryManager* mgr);
92 84
93 static void add_psYoung_memory_pool(PSYoungGen* gen, 85 static void add_psYoung_memory_pool(PSYoungGen* gen,
94 MemoryManager* major_mgr, 86 MemoryManager* major_mgr,
95 MemoryManager* minor_mgr); 87 MemoryManager* minor_mgr);
96 static void add_psOld_memory_pool(PSOldGen* gen, 88 static void add_psOld_memory_pool(PSOldGen* gen,
97 MemoryManager* mgr); 89 MemoryManager* mgr);
98 static void add_psPerm_memory_pool(PSPermGen* perm,
99 MemoryManager* mgr);
100 90
101 static void add_g1YoungGen_memory_pool(G1CollectedHeap* g1h, 91 static void add_g1YoungGen_memory_pool(G1CollectedHeap* g1h,
102 MemoryManager* major_mgr, 92 MemoryManager* major_mgr,
103 MemoryManager* minor_mgr); 93 MemoryManager* minor_mgr);
104 static void add_g1OldGen_memory_pool(G1CollectedHeap* g1h, 94 static void add_g1OldGen_memory_pool(G1CollectedHeap* g1h,
105 MemoryManager* mgr); 95 MemoryManager* mgr);
106 static void add_g1PermGen_memory_pool(G1CollectedHeap* g1h,
107 MemoryManager* mgr);
108 96
109 static MemoryPool* add_space(ContiguousSpace* space, 97 static MemoryPool* add_space(ContiguousSpace* space,
110 const char* name, 98 const char* name,
111 bool is_heap, 99 bool is_heap,
112 size_t max_size, 100 size_t max_size,