Rprof {utils} | R Documentation |
Enable or disable profiling of the execution of R expressions.
Rprof(filename = "Rprof.out", append = FALSE, interval = 0.02, memory.profiling=FALSE)
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? |
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 Perl 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: specifcally those which are
of type "special"
(see the ‘R Internals’ manual
for more details).
Profiling is not available on all platforms. By default, it is attempted to compile support for profiling. 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 profiling.
The chapter on “Tidying and profiling R code” in “Writing R Extensions” (see the ‘doc/manual’ subdirectory of the R source tree).
tracemem
, Rprofmem
for other ways to track
memory use.
## 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) ... ## Now post-process the output as described in Details ## End(Not run)