org.bootchart.common
Class ProcessTree
public
class
ProcessTree
extends Object
ProcessTree encapsulates a process tree. The tree is built from log files
retrieved during the boot process. When building the process tree, it is
pruned and merged in order to be able to visualize it in a comprehensible
manner.
The following pruning techniques are used:
- idle processes that keep running during the last process sample
(which is a heuristic for a background processes) are removed,
- short-lived processes (i.e. processes that only live for the
duration of two samples or less) are removed,
- the processes used by the boot logger are removed,
- expoders (i.e. processes that are known to spawn huge meaningless
process subtrees) have their subtrees merged together,
- siblings (i.e. processes with the same command line living
concurrently -- thread heuristic) are merged together,
- process runs (unary trees with processes sharing the command line)
are merged together.
Field Summary |
long | duration
The duration of the process tree (measured from the start time of
the first process to the end time of the last process). |
Date | endTime |
int | numProc The number of all processes in the tree. |
List | processTree The {@link Process} tree. |
int | samplePeriod Statistics sampling period. |
Date | startTime The start time of the graph |
public long duration
The duration of the process tree (measured from the start time of
the first process to the end time of the last process). This is
also the total boot time.
public Date endTime
public int numProc
The number of all processes in the tree.
public List processTree
The {@link Process} tree.
public int samplePeriod
Statistics sampling period.
public Date startTime
The start time of the graph
public ProcessTree(
PsStats psStats, String monitoredApp, boolean prune)
Creates a new process tree from the specified list of
Process
instances.
Parameters: psStats process statistics monitoredApp monitored application (or null
if
the boot process is monitored) prune whether to prune the tree by removing sleepy and
short-living processes and merging threads
public String toString()