2016-02-11 3 views
2

Я работаю над большим data.frame (например, 500k строк/наблюдений, 2500 столбцов/функций). Каждая функция - Boolean, поэтому возможны только два значения: TRUE/FALSE.Размер памяти логической переменной

После замечать чрезвычайно высокое использование оперативной памяти я проверил следующее:

myVar = TRUE 
class(myVar) 
# [1] "logical" 
object.size(myVar) 
# 48 bytes 

Я привык к char -sized bool с от C принимая 8Bit = 1Byte. Может кто-то уточнить, откуда эти массовые накладные расходы, или я делаю что-то неправильно?

+2

НЕТ переменных в ** R **, все это вектор (или список). –

ответ

2

Сравните ниже:

object.size(logical()) 
# 48 bytes 

object.size(TRUE) 
# 40 bytes 

Посмотреть сообщение от Hadley о Memory для получения дополнительной информации.

Каждая длина 0 вектор занимает 40 байт памяти.

Смежные вопросы