public class SSGCspyCollector extends SSCollector
See SSGCspy
for an overview of the GC-spy mechanisms.
SSCollector
,
SSGCspy
,
SSGCspyMutator
,
StopTheWorldCollector
,
CollectorContext
,
SimplePhase
Modifier and Type | Field and Description |
---|---|
private static boolean |
DEBUG |
los, ss, trace
sanityLocal
group
log
Constructor and Description |
---|
SSGCspyCollector()
Constructor
|
Modifier and Type | Method and Description |
---|---|
protected void |
checkAllDriversForRootAddress(Address addr)
Pass a root to all drivers.
|
void |
collectionPhase(short phaseId,
boolean primary)
Perform a (local) collection phase.
|
private void |
debugSpaces(CopySpace scannedSpace)
Prints some debugging info.
|
private LinearSpaceDriver |
fromSpaceDriver() |
private void |
gcspyGatherData(int event)
Gather data for GCspy for the semispaces only.
|
private static SSGCspy |
global() |
(package private) void |
resetRootStreams()
Reset all root streams.
|
private LinearSpaceDriver |
toSpaceDriver() |
allocCopy, getCurrentTrace, isSemiSpaceObject, postCopy
collect, concurrentCollect, concurrentCollectionPhase
parallelWorkerCount, parallelWorkerOrdinal, park, rendezvous, run
copyCheckAllocator, getId, getLog, initCollector
private static final boolean DEBUG
public SSGCspyCollector()
public final void collectionPhase(short phaseId, boolean primary)
collectionPhase
in class SSCollector
phaseId
- The unique phase identifierprimary
- Should this thread be used to execute any single-threaded
local operations?private void gcspyGatherData(int event)
This method sweeps the semispace under consideration to gather data. Alternatively and more efficiently, 'used space' can obviously be discovered in constant time simply by comparing the start and the end addresses of the semispace. However, per-object information can only be gathered by sweeping through the space and we do this here for tutorial purposes.
event
- The event, either BEFORE_COLLECTION, SEMISPACE_COPIED or
AFTER_COLLECTIONprivate void debugSpaces(CopySpace scannedSpace)
scannedSpace
- the space that was scannedvoid resetRootStreams()
protected void checkAllDriversForRootAddress(Address addr)
addr
- The Address of the object to be checkedprivate LinearSpaceDriver toSpaceDriver()
private LinearSpaceDriver fromSpaceDriver()