Rprof
function to show the
amount of time used by different R functions.
summaryRprof(filename = "Rprof.out", chunksize = 5000, memory = c("none", "both", "tseries", "stats"), lines = c("hide", "show", "both"), index = 2, diff = TRUE, exclude = NULL, basenames = 1)
Rprof()
.TRUE
memory summaries use change in memory
rather than current memory.memory = "none"
and lines = "hide"
, a list with components
lines = "show"
, an additional component is added to the list:
memory = "both"
the same list but with memory consumption in Mb
in addition to the timings.If memory = "tseries"
a data frame giving memory statistics over
time.If memory = "stats"
a by
object giving memory statistics
by function.Prior to R 2.15.3 an error was thrown if no events were recorded: now
zero-row data frames are returned.
memory = "none"
apply only to files produced
by Rprof(memory.profiling = TRUE)
. When called with memory.profiling = TRUE
, the profiler writes
information on three aspects of memory use: vector memory in small
blocks on the R heap, vector memory in large blocks (from
malloc
), memory in nodes on the R heap. It also records the number of
calls to the internal function duplicate
in the time
interval. duplicate
is called by C code when arguments need to be
copied. Note that the profiler does not track which function actually
allocated the memory. With memory = "both"
the change in total memory (truncated at zero)
is reported in addition to timing data. With memory = "tseries"
or memory = "stats"
the index
argument specifies how to summarize the stack trace. A positive number
specifies that many calls from the bottom of the stack; a negative
number specifies the number of calls from the top of the stack. With
memory = "tseries"
the index is used to construct labels and may be
a vector to give multiple sets of labels. With memory = "stats"
the
index must be a single number and specifies how to aggregate the data to
the maximum and average of the memory statistics. With both
memory = "tseries"
and memory = "stats"
the argument
diff = TRUE
asks for summaries of the increase in memory use over
the sampling interval and diff = FALSE
asks for the memory use at
the end of the interval.keep.source = TRUE
in source
or
KeepSource = TRUE
in a package DESCRIPTION file or
some other way), then information about the origin of lines is
recorded during profiling. By default this is not displayed, but
the lines
parameter can enable the display. If lines = "show"
, line locations will be used in preference
to the usual function name information, and the results
will be displayed ordered by location in addition to the other orderings. If lines = "both"
, line locations will be mixed with function
names in a combined display.Rprof
files
used by R CMD Rprof
. As the profiling output file could be larger than available memory, it
is read in blocks of chunksize
lines. Increasing chunksize
will make the function run faster if sufficient memory is available.
tracemem
traces copying of an object via the C function
duplicate
.
Rprofmem
is a non-sampling memory-use profiler.
## Not run:
# ## Rprof() is not available on all platforms
# Rprof(tmp <- tempfile())
# example(glm)
# Rprof()
# summaryRprof(tmp)
# unlink(tmp)
# ## End(Not run)
Run the code above in your browser using DataLab