I found something that looks a bit odd to me: The memory consumption of reference classes seems to increase dramatically (roughly 10x in the example below) with serialization/deserialization (saveRDS() / readRDS()). Maybe creating instances of the same class has a synergy effect (references?) which is lost after a saveRDS()/readRDS() cycle? Class definitions spring to mind but I was unable to track down any size difference along these lines. Any ideas?
Best Jan # start new R session, empty workspace untouched=memory.size(); MySmallClass = setRefClass("MySmallClass", fields = list( myField = "numeric" ), methods = list( initialize = function(f) { myField<<- f; }) ); # Generate 10K instances o = lapply(rnorm(10000), MySmallClass$new) withobj=memory.size() print(paste("Initial Mem:", untouched, "With objects:", withobj, "Difference:", round(withobj-untouched, 2))); #[1] "Initial Mem: 14.06 With objects: 29.14 Difference: 15.08" # Save and read back those instances saveRDS(o, "test.rds") untouched=memory.size(); p=readRDS("test.rds") withobj=memory.size() print(paste("Initial Mem:", untouched, "With objects:", withobj, "Difference:", round(withobj-untouched, 2))); #[1] "Initial Mem: 31.2 With objects: 200.71 Difference: 169.51" # Platform info: # R version 2.15.1 # Platform: i386-pc-mingw32/i386 (32-bit) # Binary package from CRAN # Windows 7 32 Bit # (I observed a similar behavior on Linux 64 Bit, same R version) ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.