xlsx::loadWorkbook ошибка в R

У меня есть файл .xlsx среднего размера с размером 40 000 строк и 15 столбцов. Я загрузил эти данные в R Workspace с помощью функции xlsx::loadWorkbook. Перед загрузкой этих данных размер моего ПК RAM равен 90 MB. После загрузки этих данных размер моего ПК RAM равен 650 MB. Ниже приведен код, который я использовал для загрузки данных.

library(xlsx)
file=\\file_path\\
wb <- xlsx::loadWorkbook(file)

Затем я удалил объект wb из рабочей области R с помощью rm(wb). После того, как я удалил этот файл из Workspace, размер моего ПК RAM не изменился. Он по-прежнему остается таким же, как 650MB. Я очень уверен, что у меня нет других объектов в моем рабочем пространстве. Почему это происходит? и Что я должен сделать, чтобы освободить размер моего ПК RAM?


person RSK    schedule 21.06.2018    source источник
comment
Возможно, вы захотите взглянуть на эту тему об управлении памятью: stackoverflow.com/questions/15561331/release- память-в-г   -  person DTYK    schedule 21.06.2018
comment
Для более экономичного способа импорта данных вы можете сначала экспортировать данные в csv. Это намного быстрее и требует меньше оперативной памяти.   -  person hannes101    schedule 21.06.2018
comment
Моя цель - добавить цвета в ячейки на основе их номеров. Вот почему я загружаю их в формате рабочей книги.   -  person RSK    schedule 22.06.2018


Ответы (1)


Я провел некоторые исследования самостоятельно. Вы можете попробовать следующее

memory.size()
gc()
memory.size()
rm(list=ls())
memory.size()
gc()
memory.size()

Функция memory.size() сообщает об объеме используемой в данный момент памяти. Функция gc()вызывает сборку мусора. После этого вы можете снова использовать memory.size(), чтобы увидеть, сколько памяти освободилось от сборки мусора. Команда rm(list=ls()) удаляет все объекты из вашей глобальной среды. После этого вы можете использовать memory.size(), чтобы увидеть, сколько памяти было освобождено после удаления всех объектов в вашей глобальной среде.

На этом этапе может быть еще немного используемой памяти, даже если вы удалили все объекты из глобальной среды (которую вы описали). Сделайте еще одну сборку мусора и проверьте память. Ваша память должна была ухудшиться (что я и обнаружил). Надеюсь это поможет!

person DTYK    schedule 21.06.2018
comment
Я не вижу значительного улучшения с вышеуказанными функциями. Это просто уменьшило однозначное (9 MB) пространство. - person RSK; 22.06.2018