Я обрабатываю некоторые большие наборы данных и делаю все возможное, чтобы оставаться под ограничениями памяти R. Возник вопрос о перезаписи объектов R. У меня большой data.table
(или любой объект R), и его нужно скопировать в tmp
несколько раз. Вопрос в следующем: не имеет значения, удалю ли я tmp
, прежде чем перезаписывать его? В коде:
for (1:lots_of_times) {
v_l_d_t_tmp <- copy(very_large_data_table) # Necessary copy of 7GB data
# table on 16GB machine. I can
# afford 2 but not 3 copies.
### do stuff to v_l_d_t_tmp and output
rm (v_l_d_t_tmp) # The question is whether this rm keeps max memory
# usage lower, or if it is equivalent to what an
# overwrite will automatically do on the next iteration.
}
Предположим, что необходима копия (если я дойду до точки, где мне нужно читать very_large_data_table
с диска в каждом цикле, я сделаю это, но вопрос стоит: будет ли разница в максимальном использовании памяти, если я явным образом удаляю v_l_d_t_tmp
перед загрузкой в нее снова?).
Или, чтобы научить человека ловить рыбу, что я мог набрать (в пределах R, не вмешиваться в ps
), чтобы ответить на это сам?
Это вполне нормально, если ответ получится: "Доверять сборку мусора".