我不知道这只是data.table::tables()
的奇怪行为,或者这可能是个问题:
library(data.table)
TestClass <- setRefClass(
Class = "TestClass",
fields = list(
dt = "data.table"
),
methods = list(
setTable = function( rows ){
dt <<- data.table( a = seq_len(rows), b = seq_len(rows) )
}
)
)
tc <- TestClass$new()
tc$setTable( rows = 1E7 )
当我查看内存消耗时,我会得到
tables( env=tc )
NAME NROW MB COLS KEY
[1,] .->dt 10,000,000 77 a,b
[2,] dt 10,000,000 77 a,b
Total: 154MB
这是否意味着data.table
真的消耗的内存量是必要的两倍?
答案 0 :(得分:1)
答案是否定的:
address(tc$dt) == address(tc$`.->dt`)
[1] TRUE
归功于@Arun(请参阅我的问题下面的评论)。