Я пытаюсь получить код, работающий на компьютерах с объемом памяти менее 4 ГБ. Я использую 32-разрядную версию R для обеспечения того, чтобы потолок с максимальной памятью. я нажимаю на стену ближе к концу script, когда я пытаюсь запустить команду hogging для памяти, и все ломается. но сама задача по хранению памяти требует меньше 4 ГБ. Я сузил проблему до того, что, несмотря на очистку всех объектов из памяти в текущем сеансе, консоль R все еще держит 1,9 ГБ ОЗУ. снимок экрана ниже показывает, где именно я нахожу проблему: обратите внимание, что в памяти нет нулевых объектов, но диспетчер задач говорит, что этот экземпляр R имеет 1.8578 ГБ ОЗУ.
если я очистил все объекты из памяти, а затем запустил gc()
, который все еще не очищает всю сохраненную память (как вы можете видеть на моем снимке экрана).
Можно ли как-то очистить эту память?
если он используется, вы можете воспроизвести это до точки сбоя, запустив этот script
Благодарю вас!
edit: в конце script я получаю
[1] "current designing ./2011/bst.rda"
Error: cannot allocate vector of size 434.7 Mb
In addition: There were 50 or more warnings (use warnings() to see the first 50)
> gc(verbose=T)
Garbage collection 27232 = 15350+4362+7520 (level 2) ...
31.5 Mbytes of cons cells used (49%)
450.6 Mbytes of vectors used (21%)
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 1175911 31.5 2421436 64.7 1770749 47.3
Vcells 59048650 450.6 278146328 2122.1 461815808 3523.4
> rm(list=ls(all=TRUE))
> gc(verbose=T)
Garbage collection 27233 = 15350+4362+7521 (level 2) ...
11.1 Mbytes of cons cells used (21%)
7.1 Mbytes of vectors used (0%)
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 414283 11.1 1937148 51.8 1770749 47.3
Vcells 920035 7.1 222517062 1697.7 461815808 3523.4
>