我正在研究一个大data.frame
(例如500k行/观察,2500列/特征)。每项功能均为Boolean
,因此只有两个值可用TRUE
/ FALSE
。
在注意到极高的RAM使用率后,我检查了以下内容:
myVar = TRUE
class(myVar)
# [1] "logical"
object.size(myVar)
# 48 bytes
我习惯char
bool
来自C
8Bit = 1Byte
access to dn.regex="uid=[^,]+,ou=Contacts,dc=test,dc=com"
by set="this/ou & user/employeeType" read
by * none
。有人可以详细说明这个巨大的开销来自哪里,或者我做错了什么?
答案 0 :(得分:2)
比较以下内容:
object.size(logical())
# 48 bytes
object.size(TRUE)
# 40 bytes
有关更多信息,请参阅Hadley关于Memory的帖子。
每个长度为0的向量占用40个字节的内存。