Monitor How Much Memory You Are Using

The function gc serves two purposes. First, it causes garbage collection to occur immediately, potentially freeing up storage space. Second, it displays statistics on free memory:

> gc()
           used  (Mb) gc trigger   (Mb)  max used   (Mb)
Ncells   774900  20.7     919870   24.6   3032449   81.0
Vcells 53549840 408.6  176511395 1346.7 380946917 2906.4
> # remove a big object
> rm(audioscrobbler)
> gc()
           used  (Mb) gc trigger   (Mb)  max used   (Mb)
Ncells   328394   8.8     919870   24.6   3032449   81.0
Vcells 50049839 381.9  141209116 1077.4 380946917 2906.4

Monitoring Memory Usage

To check on the (approximate) size of a specific object, use the function object.size:

> object.size(1)
32 bytes
> object.size("Hello world!")
72 bytes
> object.size(audioscrobbler)
39374504 bytes

The function memory.profile displays information on memory usage by object type:

> memory.profile()
       NULL      symbol    pairlist     closure environment 
          1        9479      160358        3360        1342 
    promise    language     special     builtin        char 
       8162       44776         138        1294       48872 
    logical     integer      double     complex   character 
       4727        8373        2185           4       29761 
        ...         any        list  expression    bytecode 
          0           0        3488           2           0 
externalptr     weakref         raw          S4 
        993         272         273        1008

To monitor how much memory R is using on a Microsoft Windows system, you can use the function memory.size. (On other platforms, this function returns the value Inf with a warning.) On startup, here is how much memory R used:

> memory.size()
[1] 10.58104

This function reports memory usage in MB. You can check the maximum amount of memory used so far through ...

Get R in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.