Summarise Output of R Sampling Profiler
Summarise the output of the
Rprof function to show the
amount of time used by different Rfunctions.
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)
- Name of a file produced by
- Number of lines to read at a time.
- Summaries for memory information. See
Memory profilingbelow. Can be abbreviated.
- Summaries for line information. See
Line profilingbelow. Can be abbreviated.
- How to summarize the stack trace for memory
TRUEmemory summaries use change in memory rather than current memory.
- Functions to exclude when summarizing the stack trace for memory summaries.
- Number of components of the path to filenames to display.
This function provides the analysis code for As the profiling output file could be larger than available memory, it
is read in blocks of
chunksize lines. Increasing
will make the function run faster if sufficient memory is available.
As the profiling output file could be larger than available memory, it
is read in blocks of
memory = "none"and
lines = "hide", a list with components
by.self A data frame of timings sorted by selftime. by.total A data frame of timings sorted by totaltime. sample.interval The sampling interval. sampling.time Total time of profiling run.
- The first two components have columns self.time,
self.pct, total.time and total.pct, the times in
seconds and percentages of the total time spent executing code in that
function and code in that function or called from that function,
lines = "show", an additional component is added to the list:
by.line A data frame of timings sorted by source location.
memory = "both"the same list but with memory consumption in Mb in addition to the timings.
memory = "tseries"a data frame giving memory statistics over time.
memory = "stats"a
byobject giving memory statistics by function. Prior to R2.15.3 an error was thrown if no events were recorded: now zero-row data frames are returned.
Options other than
memory = "none" apply only to files produced
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
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.
memory = "both" the change in total memory (truncated at zero)
is reported in addition to timing data.
memory = "tseries" or
memory = "stats" the
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.
If the code being run has source reference information retained (via
keep.source = TRUE in
KeepSource = TRUE in a package
lines parameter can enable the display.
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.
lines = "both", line locations will be mixed with function
names in a combined display.
The chapter on
tracemem traces copying of an object via the C function
Rprofmem is a non-sampling memory-use profiler.
## Rprof() is not available on all platforms Rprof(tmp <- tempfile()) example(glm) Rprof() summaryRprof(tmp) unlink(tmp)