Решил проверить ключевое преимущество пакета ff - минимальное выделение оперативной памяти (характеристики ПК: i5, RAM 8Gb, Win7 64 бит, Rstudio).
Согласно описанию пакета, мы можем манипулировать физическими объектами (файлами) так же, как и виртуальными, как если бы они были размещены в оперативной памяти. Таким образом, фактическое использование оперативной памяти значительно снижается (с Гб до Кб). Код, который я использовал, выглядит следующим образом:
library(ff)
library(ffbase)
setwd("D:/My_package/Personal/R/reading")
x<-cbind(rnorm(1:100000000),rnorm(1:100000000),1:100000000)
system.time(write.csv2(x,"test.csv",row.names=FALSE))
system.time(x <- read.csv2.ffdf(file="test.csv", header=TRUE, first.rows=100000, next.rows=100000000,levels=NULL))
print(object.size(x)/1024/1024)
print(class(x))
Фактический размер файла составляет 4,5 Гб, реально используемая оперативная память варьируется таким образом (по Диспетчеру задач): 2,92 -> верхний предел (~8 Гб) -> 5,25 Гб. Размер объекта (по object.size()) составляет около 12 кб.
Меня беспокоит дополнительное выделение оперативной памяти (~ 2,3 ГБ). По описанию пакета он должен был увеличиться всего на 12 кб. Я не использую никаких символов.
Может быть, я что-то пропустил в пакете ff.