class CLDClosure; class CodeBlobClosure; class G1CollectedHeap; class G1EvacuationRootClosures; class G1GCPhaseTimes; class G1ParScanThreadState; class G1RootClosures; class Monitor; class OopClosure; class SubTasksDone;
// Scoped object to assist in applying oop, CLD and code blob closures to // root locations. Handles claiming of different root scanning tasks // and takes care of global state for root scanning via a StrongRootsScope. // In the parallel case there is a shared G1RootProcessor object where all // worker thread call the process_roots methods. class G1RootProcessor : public StackObj {
G1CollectedHeap* _g1h;
SubTasksDone _process_strong_tasks;
StrongRootsScope _srs;
OopStorageSetStrongParState<false, false> _oop_storage_set_strong_par_state;
enum G1H_process_roots_tasks {
G1RP_PS_ClassLoaderDataGraph_oops_do,
G1RP_PS_CodeCache_oops_do,
G1RP_PS_refProcessor_oops_do, // Leave this one last.
G1RP_PS_NumElements
};
// Apply correct closures from pss to the strongly and weakly reachable roots in the system // in a single pass. // Record and report timing measurements for sub phases using worker_id. void evacuate_roots(G1ParScanThreadState* pss, uint worker_id);
// Apply oops, clds and blobs to all strongly reachable roots in the system void process_strong_roots(OopClosure* oops,
CLDClosure* clds,
CodeBlobClosure* blobs);
// Apply oops, clds and blobs to strongly and weakly reachable roots in the system void process_all_roots(OopClosure* oops,
CLDClosure* clds,
CodeBlobClosure* blobs);
// Number of worker threads used by the root processor.
uint n_workers() const;
};
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.