Rprof {utils} | R Documentation

## Enable Profiling of R's Execution

### Description

Enable or disable profiling of the execution of R expressions.

### Usage

    Rprof(filename = "Rprof.out", append = FALSE, interval = 0.02,
           memory.profiling=FALSE)

### Arguments

`filename` | The file to be used for recording the profiling results. Set to `NULL` or `""` to disable profiling.
`append` | logical: should the file be over-written or appended to?
`interval` | real: time interval between samples.
`memory.profiling` | logical: write memory use information to the file?

### Details

Enabling profiling automatically disables any existing profiling to another or the same file.

Profiling works by writing out the call stack every `interval` seconds, to the file specified. Either the `summaryRprof` function or the wrapper script `R CMD Rprof` can be used to process the output file to produce a summary of the usage; use `R CMD Rprof --help` for usage information.

How time is measured varies by platform: on a Unix-alike it is the CPU time of the R process, so for example excludes time when R is waiting for input or for processes run by `system` to return.

Note that the timing interval cannot usefully be too small: once the timer goes off, the information is not recorded until the next timing click (probably in the range 1–10msecs).

Functions will only be recorded in the profile log if they put a context on the call stack (see `sys.calls`). Some primitive functions do not do so: specifically those which are of type `"special"` (see the ‘R Internals’ manual for more details).

### Note

Profiling is not available on all platforms. By default, support for profiling is compiled in if possible – configure R with --disable-R-profiling to change this.

As R profiling uses the same mechanisms as C profiling, the two cannot be used together, so do not use `Rprof` in an executable built for C-level profiling.

### See Also

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

`summaryRprof`

`tracemem`, `Rprofmem` for other ways to track memory use.

### Examples

    ## Not run: Rprof()
    ## some code to be profiled
    Rprof(NULL)
    ## some code NOT to be profiled
    Rprof(append=TRUE)
    ## some code to be profiled
    Rprof(NULL)
    \dots
    ## Now post-process the output as described in Details

    ## End(Not run)

[Package utils version 2.15.1 Index]