Я думал, что у R есть стандартные накладные расходы на хранение объектов (кажется, 24 байта, по крайней мере, для целочисленных векторов), но простой тест показал, что это сложнее, чем я думал. Например, взяв целочисленные векторы длиной до 100 (с использованием случайной выборки, надеясь избежать каких-либо хитрых уловок сжатия последовательностей, которые могут быть там ), я обнаружил, что векторы разной длины могут иметь одинаковый размер, как показано ниже. :
> N = 100
> V = vector(length = 100)
> for(L in 1:N){
+ z = sample(N, L, replace = TRUE)
+ V[L] = object.size(z)
+ }
>
> options('width'=88)
> V
[1] 48 48 56 56 72 72 72 72 88 88 88 88 104 104 104 104 168 168 168 168
[21] 168 168 168 168 168 168 168 168 168 168 168 168 176 176 184 184 192 192 200 200
[41] 208 208 216 216 224 224 232 232 240 240 248 248 256 256 264 264 272 272 280 280
[61] 288 288 296 296 304 304 312 312 320 320 328 328 336 336 344 344 352 352 360 360
[81] 368 368 376 376 384 384 392 392 400 400 408 408 416 416 424 424 432 432 440 440
Я очень впечатлен отображаемыми значениями 152
(наблюдение: 152 = 128 + 24, хотя 280 = 256 + 24 не так заметно). Может кто-нибудь объяснить, как возникают эти распределения? Я не смог найти четкого определения в документации, хотя появляются V-ячейки.