This function calculates the size of objects in the global environment of R using lobstr::obj_size and prints a summary of objects that are greater than a specified size threshold. It is useful for memory management and identifying large objects in the workspace.
Arguments
- greater_than
 Numeric. Size threshold in MB. Only objects larger than this value will be shown. Default is 0, which means all objects will be shown.
greater_thanmust be a non-negative number.- in_function
 Logical. This controls the scope of the function. It indicates whether the execution is done inside or outside of a function. Defaults to
FALSEto show sizes of objects in the global environment. If set toTRUE, sizes of objects in the function are returned.- n_decimals
 Integer; representing the number of decimal places to show in the
size_mbcolumn. Defaults to 2.- n_objects
 Number of objects to show. Defaults to
Infmeaning show all available objects.
Value
The function prints a tibble containing the variables' names, their sizes in MB, and their percentage of the total size of all variables. If no objects meet the criteria, a message is printed instead. Output is sorted in descending order of the size of the objects. The function also prints the total size of all variables and the number of objects that were examined.
Examples
AA1 <<- rep(seq_len(1000), 10000)
AA2 <<- rep(seq_len(1000), 100)
# ----------------------------------------------------
# All objects in memory
# ----------------------------------------------------
all_objects_sizes()
#> ---------------------------------------------------
#> 	3 object(s) fulfil the criteria
#> ---------------------------------------------------
#> # A tibble: 3 × 4
#>   object       object_class size_mb percent
#>   <chr>        <chr>          <dbl>   <dbl>
#> 1 AA1          integer        38.15   99.01
#> 2 AA2          integer         0.38    0.99
#> 3 .Random.seed integer         0       0   
# ----------------------------------------------------
# Objects larger than 1 MB
# ----------------------------------------------------
all_objects_sizes(greater_than = 1)
#> ---------------------------------------------------
#> 	1 object(s) fulfil the criteria
#> ---------------------------------------------------
#> # A tibble: 1 × 4
#>   object object_class size_mb percent
#>   <chr>  <chr>          <dbl>   <dbl>
#> 1 AA1    integer        38.15   99.01
# ----------------------------------------------------
# Objects larger than 50 MB
# ----------------------------------------------------
all_objects_sizes(greater_than = 50)
#> No object has Size > 50 MB
#> 
# ----------------------------------------------------
# When called with another function, it shows the objects only available
# within the function
# ----------------------------------------------------
TestFun <- function(XX = 10) {
  Y <- 20
  C <- matrix(data = seq_len(10000), nrow = 100, ncol = 100)
  all_objects_sizes(in_function = TRUE)
}
TestFun()
#> ---------------------------------------------------
#> 	3 object(s) fulfil the criteria
#> ---------------------------------------------------
#> # A tibble: 3 × 4
#>   object object_class size_mb percent
#>   <chr>  <chr>          <dbl>   <dbl>
#> 1 C      matrix_array    0.04     100
#> 2 XX     numeric         0          0
#> 3 Y      numeric         0          0
TestFun(XX = "TEST")
#> ---------------------------------------------------
#> 	3 object(s) fulfil the criteria
#> ---------------------------------------------------
#> # A tibble: 3 × 4
#>   object object_class size_mb percent
#>   <chr>  <chr>          <dbl>   <dbl>
#> 1 C      matrix_array    0.04     100
#> 2 XX     character       0          0
#> 3 Y      numeric         0          0