public class AnalysisTimeLimiter extends DefaultAnalysisMonitoring
Ignores time spent in building flowgraph and post-processing analysis results.
Constructor and Description |
---|
AnalysisTimeLimiter(int secondsTimeLimit) |
AnalysisTimeLimiter(int secondsTimeLimit,
int nodeTransferLimit,
boolean crashImmediately) |
Modifier and Type | Method and Description |
---|---|
boolean |
allowNextIteration()
Returns true if the fixpoint solver should continue with its next iteration or abort early and unsoundly.
|
boolean |
analysisNotExceededLimit() |
void |
visitNodeTransferPre(AbstractNode n,
State s)
Invoked immediately before processing a node transfer.
|
void |
visitPhasePre(AnalysisPhase phase)
Invoked at the beginning of a phase.
|
addMessage, addMessage, addMessageInfo, getMessages, getTypeInformation, setSolverInterface, visitBlockTransferPost, visitBlockTransferPre, visitCall, visitEvalCall, visitEventHandlerRegistration, visitFunction, visitIf, visitIn, visitInnerHTMLWrite, visitInstanceof, visitIterationDone, visitJoin, visitNativeFunctionCall, visitNativeFunctionReturn, visitNewFlow, visitNewObject, visitNodeTransferPost, visitPhasePost, visitPropagationPost, visitPropagationPre, visitPropertyAccess, visitPropertyRead, visitPropertyWrite, visitRead, visitReadNonThisVariable, visitReadProperty, visitReadThis, visitReadVariable, visitRecoveryGraph, visitRenameObject, visitUnknownValueResolve, visitUserFunctionCall, visitVariableAsRead, visitVariableOrProperty
public AnalysisTimeLimiter(int secondsTimeLimit)
public AnalysisTimeLimiter(int secondsTimeLimit, int nodeTransferLimit, boolean crashImmediately)
secondsTimeLimit
- the number of second the analysis is allowed to run, or -1 if no limitnodeTransferLimit
- the number of node transfers the analysis is allowed to run, or -1 if no limitcrashImmediately
- true if an exception should be thrown when the analysis exceed the time limitpublic boolean allowNextIteration()
ISolverMonitoring
allowNextIteration
in interface ISolverMonitoring<State,Context>
allowNextIteration
in class DefaultAnalysisMonitoring
public boolean analysisNotExceededLimit()
public void visitNodeTransferPre(AbstractNode n, State s)
ISolverMonitoring
visitNodeTransferPre
in interface ISolverMonitoring<State,Context>
visitNodeTransferPre
in class DefaultAnalysisMonitoring
public void visitPhasePre(AnalysisPhase phase)
IAnalysisMonitoring
visitPhasePre
in interface IAnalysisMonitoring
visitPhasePre
in class DefaultAnalysisMonitoring
Copyright © 2009-2019 Aarhus University