summaryRprof              package:utils              R Documentation

Summarise Output of R Sampling Profiler

Description:

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

Usage:

     summaryRprof(filename = "Rprof.out", chunksize = 5000,
                   memory=c("none","both","tseries","stats"),
                   index=2, diff=TRUE, exclude=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 for
          memory summaries

Details:

     This function is an alternative to 'R CMD Rprof'. It provides the
     convenience of an all-R implementation but will be slower for
     large files.

     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

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.

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.

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

Examples:

     ## Not run: 
     ## Rprof() is not available on all platforms
     Rprof(tmp <- tempfile())
     example(glm)
     Rprof()
     summaryRprof(tmp)
     unlink(tmp)
     ## End(Not run)

