Rprof(filename = "Rprof.out", append = FALSE, interval = 0.02,
memory.profiling = FALSE, gc.profiling = FALSE,
line.profiling = FALSE, numfiles = 100L, bufsize = 10000L)
NULL
or ""
to disable profiling.
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. Exactly what the time interval measures is subtle: it is time that the
R process is running and executing an R command. It is not however just
CPU time, for if readline()
is waiting for input, that counts
(on Windows, but not on a Unix-alike). Note that the timing interval cannot be too small, for the time spent
in each profiling step is added to the interval. What is feasible is
machine-dependent, but 10ms seemed as small as advisable on a 1GHz machine.
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). Individual statements will be recorded in the profile log if
line.profiling
is TRUE
, and if the code being executed
was parsed with source references. See parse
for a
discussion of source references. By default the statement locations
are not shown in summaryRprof
, but see that help page
for options to enable the display.doc/manual
subdirectory
of the R source tree). summaryRprof
to analyse the output file. 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)
# \dots
# ## Now post-process the output as described in Details
## ---------------------------------------------
Run the code above in your browser using DataLab