/* * Copyright (c) 2017, 2021, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. *
*/
class GCMemoryManager; class MemoryPool; class OopIterateClosure; class TenuredGeneration;
// SerialHeap is the implementation of CollectedHeap for Serial GC. // // The heap is reserved up-front in a single contiguous block, split into two // parts, the young and old generation. The young generation resides at lower // addresses, the old generation at higher addresses. The boundary address // between the generations is fixed. Within a generation, committed memory // grows towards higher addresses. // // // low high // // +-- generation boundary (fixed after startup) // | // |<- young gen (reserved MaxNewSize) ->|<- old gen (reserved MaxOldSize) ->| // +-----------------+--------+--------+--------+---------------+-------------------+ // | eden | from | to | | old | | // | | (to) | (from) | | | | // +-----------------+--------+--------+--------+---------------+-------------------+ // |<- committed ->| |<- committed ->| // class SerialHeap : public GenCollectedHeap { private:
MemoryPool* _eden_pool;
MemoryPool* _survivor_pool;
MemoryPool* _old_pool;
virtualvoid initialize_serviceability();
public: static SerialHeap* heap();
SerialHeap();
virtual Name kind() const { return CollectedHeap::Serial;
}
// Apply "cur->do_oop" or "older->do_oop" to all the oops in objects // allocated since the last call to save_marks in the young generation. // The "cur" closure is applied to references in the younger generation // at "level", and the "older" closure to older generations. template <typename OopClosureType1, typename OopClosureType2> void oop_since_save_marks_iterate(OopClosureType1* cur,
OopClosureType2* older);
// Support for loading objects from CDS archive into the heap bool can_load_archived_objects() const { return UseCompressedOops; }
HeapWord* allocate_loaded_archive_space(size_t size); void complete_loaded_archive_space(MemRegion archive_space);
};
#endif// SHARE_GC_SERIAL_SERIALHEAP_HPP
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.