/>
小さな工夫と発見の蓄積
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
library(R6) A <- R6Class('A', public = list( number=NA, initialize = function(number) { self$number <- number reg.finalizer( self, function(e) cat('Garbage collected! #', e$number, '\n'), onexit = TRUE ) } ) ) a <- list(A$new(1), A$new(2), A$new(3)) gc() # clean up the garbage created when initializing # when the list is removed, all three instances are 'garbage' rm(a) gc() #Garbage collected! # 3 #Garbage collected! # 2 #Garbage collected! # 1 # used (Mb) gc trigger (Mb) max used (Mb) #Ncells 567894 30.4 1168576 62.5 1168576 62.5 #Vcells 821924 6.3 2994598 22.9 54470995 415.6 a <- list(A$new(1), A$new(2), A$new(3)) gc() # remove the reference to the 1st element. a <- a[-1] gc() #Garbage collected! # 1 # used (Mb) gc trigger (Mb) max used (Mb) #Ncells 567896 30.4 1168576 62.5 1168576 62.5 #Vcells 821917 6.3 2994598 22.9 54470995 415.6 # let another variable refer to the first element b <- a[[1]] rm(a) gc() #Garbage collected! # 3 # used (Mb) gc trigger (Mb) max used (Mb) #Ncells 567879 30.4 1168576 62.5 1168576 62.5 #Vcells 821913 6.3 2994598 22.9 54470995 415.6