summaryRprof: Summarise Output of R Sampling Profiler

Description Usage Arguments Details Value Note See Also Examples

Description

Summarise the output of the Rprof function to show the amount of time used by different R functions.

Usage

1
2
3
summaryRprof(filename = "Rprof.out", chunksize = 5000,
              memory=c("none","both","tseries","stats"),
              index=2, diff=TRUE, exclude=NULL, includeonly=NULL)

Arguments

filename

Name of a file produced by Rprof()

chunksize

Number of lines to read at a time

memory

Summaries for memory information. See ‘Details’ below

index

How to summarize the stack trace for memory information. See ‘Details’ below.

diff

If TRUE memory summaries use change in memory rather than current memory

exclude

Functions to exclude when summarizing the stack trace

includeonly

Functions to incuding when summarizing the stack trace. At least one of these functions must be present.

Details

This function provides the analysis code for 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.

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.

Value

If memory = "none", a list with components

by.self

Timings sorted by ‘self’ time

by.total

Timings sorted by ‘total’ time

sample.interval

The sampling interval

sampling.time

Total length of profiling run

If 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.

Note

Changed from the R distribution version:

\" is stripped from function names, if available.

Argument exclude is also used for timing summary.

Argument includeonly is added.

See Also

The chapter on “Tidying and profiling R code” in “Writing R Extensions” (see the ‘doc/manual’ subdirectory of the R source tree).

Rprof

tracemem traces copying of an object via the C function duplicate.

Rprofmem is a non-sampling memory-use profiler.

http://developer.r-project.org/memory-profiling.html

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
## Not run: 
## Rprof() is not available on all platforms
Rprof(tmp <- tempfile())
example(glm)
Rprof()
summaryRprof(tmp)
summaryRprof(tmp, includeonly="anova.glm")
unlink(tmp)

## End(Not run)

sintro documentation built on May 2, 2019, 5:26 p.m.