profvis {profvis} | R Documentation |
Profile an R expression and visualize profiling data
Description
This function will run an R expression with profiling, and then return an htmlwidget for interactively exploring the profiling data.
Usage
profvis(
expr = NULL,
interval = 0.01,
prof_output = NULL,
prof_input = NULL,
width = NULL,
height = NULL,
split = c("h", "v"),
torture = 0,
simplify = TRUE,
rerun = FALSE
)
Arguments
expr |
Expression to profile. Not compatible with |
interval |
Interval for profiling samples, in seconds. Values less than 0.005 (5 ms) will probably not result in accurate timings |
prof_output |
Name of an Rprof output file or directory in which to save
profiling data. If |
prof_input |
The path to an |
width |
Width of the htmlwidget. |
height |
Height of the htmlwidget |
split |
Direction of split. Either |
torture |
Triggers garbage collection after every Note that memory allocation is only approximate due to the nature of the
sampling profiler and garbage collection: when garbage collection triggers,
memory allocations will be attributed to different lines of code. Using
|
simplify |
Whether to simplify the profiles by removing
intervening frames caused by lazy evaluation. This only has an
effect on R 4.0. See the |
rerun |
If 'TRUE', 'Rprof()' is run again with 'expr' until a profile is actually produced. This is useful for the cases where 'expr' returns too quickly, before R had time to sample a profile. Can also be a string containing a regexp to match profiles. In this case, 'profvis()' reruns 'expr' until the regexp matches the modal value of the profile stacks. |
Details
An alternate way to use profvis
is to separately capture the profiling
data to a file using Rprof()
, and then pass the path to the
corresponding data file as the prof_input
argument to
profvis()
.
See Also
print.profvis
for printing options.
Rprof
for more information about how the profiling
data is collected.
Examples
# Only run these examples in interactive R sessions
if (interactive()) {
# Profile some code
profvis({
dat <- data.frame(
x = rnorm(5e4),
y = rnorm(5e4)
)
plot(x ~ y, data = dat)
m <- lm(x ~ y, data = dat)
abline(m, col = "red")
})
# Save a profile to an HTML file
p <- profvis({
dat <- data.frame(
x = rnorm(5e4),
y = rnorm(5e4)
)
plot(x ~ y, data = dat)
m <- lm(x ~ y, data = dat)
abline(m, col = "red")
})
htmlwidgets::saveWidget(p, "profile.html")
# Can open in browser from R
browseURL("profile.html")
}