profileCallGraph2Dot {proftools} | R Documentation |
Write Call Graph for Rprof Profile Data to Graphviz Dot File
Description
Prints a Graphviz .dot file representation of the call graph for profile
data produced by Rprof
.
Usage
profileCallGraph2Dot(pd, score = c("none", "total", "self"),
transfer = function(x) x, nodeColorMap = NULL,
edgeColorMap = NULL, filename = "Rprof.dot",
landscape = FALSE, mergeCycles = FALSE,
edgesColored = FALSE,
rankDir = c("TB", "LR"),
nodeDetails = FALSE, edgeDetails = FALSE,
nodeSizeScore = c("none", "total", "self"),
edgeSizeScore = c("none", "total"),
center = FALSE, size, shape = "ellipse",
layout = "dot", style, GC = TRUE,
maxnodes = NA, total.pct = 0)
Arguments
pd |
profile data as returned by |
score |
character string specifying whether to use total time or self time for coloring nodes/edges; no color used if missing. |
transfer |
function; maps score values in unit interval to unit interval |
nodeColorMap , edgeColorMap |
character vectors of color
specifications as produced by |
filename |
name of |
landscape |
logical; whether to add the |
mergeCycles |
logical; whether to merge each cycle of recursion into a single node |
edgesColored |
logical; whether to color edges |
rankDir |
character; value to use for the |
nodeDetails , edgeDetails |
logical; whether count information should be shown. |
nodeSizeScore |
character; value to encode in the size of the nodes. |
edgeSizeScore |
character; value to encode in the width of the edges. |
center |
logical; whether to add the |
size |
character; string to add as |
shape |
character; node shape. |
layout |
character; layout method to use. |
style |
named list of values for arguments |
GC |
logical; include GC information or not. |
maxnodes |
integer; maximal number of nodes to use; nodes with lower total hit counts are dropped. |
total.pct |
numeric; if positive, nodes with hit percentages below this level are dropped. |
Details
Writes the call graph as a Graphviz .dot
file. Color is used
to encode the fraction total or self time spent in each function or
call. The scores used correspond to the values in the printed
representation produced by printProfileCallGraph
. For now,
see the gprof
manual for further details. The color encoding
for a score s
and a color map m
is
ceiling(length(m) * transfer(s))
A style can be specified to set options to a set of cvalues that work well together.
Value
Used for side effect.
Note
Because of lazy evaluation, nested calls like f(g(x))
appear in the profile graph as f
or one of its callees
calling g
.
Calls to functions with names containing a |
character are
dropped as they cause problems in the graph package.
Author(s)
Luke Tierney
References
User manual for gprof
, the GNU profiler.
Graphviz: https://graphviz.gitlab.io/download/
See Also
Rprof
,
summaryRprof
,
readProfileData
,
flatProfile
,
plotProfileCallGraph
,
printProfileCallGraph
plain.style
google.style
Examples
pd <- readProfileData(system.file("samples", "glmEx.out", package="proftools"))
tmp <- tempfile()
profileCallGraph2Dot(pd, filename = tmp)
file.show(tmp)
unlink(tmp)
## Not run:
## If you have graphviz installed on a UNIX-like system
## then in R do:
tmp.dot <- tempfile()
tmp.pdf <- tempfile()
profileCallGraph2Dot(pd, filename = tmp.dot)
system(sprintf("dot -Tpdf -o
browseURL(sprintf("file://
profileCallGraph2Dot(pd, filename = tmp.dot)
system(sprintf("dot -Tpdf -o
browseURL(sprintf("file://
unlink(tmp.dot)
unlink(tmp.pdf)
## End(Not run)