Зарезервированная память R в два раза превышает размер выделенного массива

Я заметил следующее поведение. Скажем, я создаю следующий многомерный -массив:

spam = array(runif(96*48*60*360), dim = c(96,48,60,360))

Вполне предсказуемо, сколько памяти R должен использовать для этого, а именно (96 *48 *60 *360)*4 байта = 759,4 Мбайт. Это прекрасно подтверждается с помощью функции lsos(см. этот пост):

> lsos()
         Type      Size PrettySize Rows Columns
spam    array 796262520   759.4 Mb   96      48
lsos function       776  776 bytes   NA      NA

Однако R как процесс использует гораздо больше памяти, примерно в два раза больше :

$ top | grep rsession
82:17628 hiemstra  20   0 1614m **1.5g** 8996 S  0.3 40.4   0:04.85 rsession  

. Почему Р это делает? Я предполагаю, что дополнительная зарезервированная память выделена, чтобы сделать ее более доступной для R? Есть идеи?

6
задан Community 23 May 2017 в 12:21
поделиться