R: Report the Space Allocated for an Object

object.size {utils} | R Documentation

## Report the Space Allocated for an Object

### Description

Provides an estimate of the memory that is being used to store an R object.

### Usage

    object.size(x)

    ## S3 method for class 'object_size'
    format(x, units = "b", ...)
    ## S3 method for class 'object_size'
    print(x, quote = FALSE, units = "b", ...)

### Arguments

`x` | An R object.
`quote` | logical, indicating whether or not the result should be printed with surrounding quotes.
`units` | The units to be used in printing the size. Allowed values are `"b"`, `"Kb"`, `"Mb"`, `"Gb"`, `"B"`, `"KB"`, `"MB"`, `"GB"`, and `"auto"` (see ‘Details’).
`...` | Arguments to be passed to or from other methods.

### Details

Exactly which parts of the memory allocation should be attributed to which object is not clear-cut. This function merely provides a rough indication: it should be reasonably accurate for atomic vectors, but does not detect if elements of a list are shared, for example. (Sharing amongst elements of a character vector is taken into account, but not that between character vectors in a single object.)

The calculation is of the size of the object, and excludes the space needed to store its name in the symbol table.

Associated space (e.g., the environment of a function and what the pointer in a `EXTPTRSXP` points to) is not included in the calculation.

Object sizes are larger on 64-bit builds than 32-bit ones, but will very likely be the same on different platforms with the same word length and pointer size.

`units = "auto"` in the `format` and `print` methods chooses the largest units in which the result is one or more (before rounding). Values in kilobytes, megabytes or gigabytes are rounded to the nearest `0.1`.

### Value

An object of class `"object_size"` with a length-one double value, an estimate of the memory allocation attributable to the object in bytes.

### See Also

`Memory-limits` for the design limitations on object size.

### Examples

    object.size(letters)
    object.size(ls)
    format(object.size(library), units = "auto")
    ## find the 10 largest objects in the base package
    z <- sapply(ls("package:base"), function(x)
                object.size(get(x, envir = baseenv())))
    as.matrix(rev(sort(z))[1:10])

[Package utils version 3.1.2 Index]