public abstract class AbstractReferenceCountingGarbageCollector<N,D> extends AbstractGarbageCollector<N,D> implements IGarbageCollectorPeer
| 限定符和类型 | 字段和说明 |
|---|---|
protected int |
edgeThreshold
Wait for at least this number of edges before starting the garbage collection
|
protected int |
methodThreshold
The number of methods to collect as candidates for garbage collection, before
halting the taint propagation and actually cleaning them up
|
protected Set<heros.solver.PathEdge<N,D>> |
oldEdges |
protected boolean |
validateEdges |
icfg, jumpFunctions, referenceProvider| 构造器和说明 |
|---|
AbstractReferenceCountingGarbageCollector(soot.jimple.toolkits.ide.icfg.BiDiInterproceduralCFG<N,soot.SootMethod> icfg,
soot.util.ConcurrentHashMultiMap<soot.SootMethod,heros.solver.PathEdge<N,D>> jumpFunctions) |
AbstractReferenceCountingGarbageCollector(soot.jimple.toolkits.ide.icfg.BiDiInterproceduralCFG<N,soot.SootMethod> icfg,
soot.util.ConcurrentHashMultiMap<soot.SootMethod,heros.solver.PathEdge<N,D>> jumpFunctions,
IGCReferenceProvider<D,N> referenceProvider) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
gcImmediate()
Immediately performs garbage collection
|
int |
getGcedEdges()
Gets the number of taint abstractions that were removed during garbage
collection
|
int |
getGcedMethods()
Gets the number of methods for which taint abstractions were removed during
garbage collection
|
boolean |
hasActiveDependencies(soot.SootMethod method)
Checks whether the given method has any open dependencies in any of the
solvers that are members of this peer group that prevent its jump functions
from being garbage collected
|
void |
notifyEdgeSchedule(heros.solver.PathEdge<N,D> edge)
Notifies the garbage collector that a new edge has been scheduled for
processing
|
void |
notifyTaskProcessed(heros.solver.PathEdge<N,D> edge)
Notifies the garbage collector that an edge has been fully processed
|
protected void |
onAfterRemoveEdges(int gcedMethods)
Method that is called after the last edge has been removed from the jump
functions
|
protected void |
onBeforeRemoveEdges()
Method that is called before the first edge is removed from the jump
functions
|
void |
setCheckChangeCounter(boolean checkChangeCounter)
Sets whether the change counter shall be checked when identifying active
method dependencies
|
void |
setEdgeThreshold(int threshold)
Sets the minimum number of edges that shall be propagated before triggering
the garbage collection
|
void |
setMethodThreshold(int threshold)
Sets the number of methods for which edges must have been added before
garbage collection is started
|
void |
setPeerGroup(GarbageCollectorPeerGroup peerGroup)
Sets the peer group in which this solver operates.
|
void |
setTrigger(GarbageCollectionTrigger trigger)
Set the trigger that defines when garbage collection shall be started
|
createReferenceProvider, initializeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgc, notifySolverTerminatedprotected boolean validateEdges
protected int methodThreshold
protected int edgeThreshold
public AbstractReferenceCountingGarbageCollector(soot.jimple.toolkits.ide.icfg.BiDiInterproceduralCFG<N,soot.SootMethod> icfg, soot.util.ConcurrentHashMultiMap<soot.SootMethod,heros.solver.PathEdge<N,D>> jumpFunctions, IGCReferenceProvider<D,N> referenceProvider)
public void notifyEdgeSchedule(heros.solver.PathEdge<N,D> edge)
IGarbageCollectornotifyEdgeSchedule 在接口中 IGarbageCollector<N,D>edge - The edge that has been scheduledpublic void notifyTaskProcessed(heros.solver.PathEdge<N,D> edge)
IGarbageCollectornotifyTaskProcessed 在接口中 IGarbageCollector<N,D>edge - The edge has been fully processedpublic boolean hasActiveDependencies(soot.SootMethod method)
IGarbageCollectorPeerhasActiveDependencies 在接口中 IGarbageCollectorPeermethod - The method to checkprotected void gcImmediate()
protected void onBeforeRemoveEdges()
protected void onAfterRemoveEdges(int gcedMethods)
gcedMethods - The number of methods for which edges have been removedpublic int getGcedMethods()
IGarbageCollectorgetGcedMethods 在接口中 IGarbageCollector<N,D>public int getGcedEdges()
IGarbageCollectorgetGcedEdges 在接口中 IGarbageCollector<N,D>public void setMethodThreshold(int threshold)
threshold - The threshold of new methods required to trigger garbage
collectionpublic void setEdgeThreshold(int threshold)
threshold - The minimum number of edges that shall be propagated before
triggering the garbage collectionpublic void setTrigger(GarbageCollectionTrigger trigger)
trigger - The trigger that defines when garbage collection shall be
startedpublic void setPeerGroup(GarbageCollectorPeerGroup peerGroup)
peerGroup - The peer grouppublic void setCheckChangeCounter(boolean checkChangeCounter)
checkChangeCounter - True to ensure consistency using change counters,
false otherwiseCopyright © 2022 Fraunhofer SIT. All rights reserved.