Должен ли я перезаписать существующую переменную, чтобы сохранить память в R - PullRequest
1 голос
/ 16 апреля 2020

Не очень знаком с G C в R, просто интересно, может ли он сэкономить память, если я перезаписываю существующую переменную в R. Например, большой вектор добавляет 1:

aa <- rnorm(100000)
# method 1: create a new variable
bb <- aa + 1
# method 2: overrite previous variable
aa <- aa + 1

Метод 1 создал новую переменную и занял несколько воспоминаний. Как насчет метода 2, понадобится ли ему больше памяти?

1 Ответ

0 голосов
/ 16 апреля 2020

Вы можете использовать пакет lobstr (который заменяет pryr), чтобы исследовать использование памяти и сборку мусора в R. Там еще много всего здесь , но краткий ответ - перезапись существующего переменная занимает гораздо меньше дополнительной памяти, чем создание новой переменной. Я использую pryr ниже из-за удобства функции mem_change, недоступной в lobstr.

library(pryr)

aa <- rnorm(100000)

# method 1: create a new variable
mem_change(bb <- aa + 1)
#> 805 kB

# method 2: overrite previous variable
mem_change(aa <- aa + 1)
#> 528 B
...