Предположим, что вы работаете с Rx64 3.5.1 на компьютере x64 под управлением Windows 10 версии 10.0.17134, сборка 17134. Система имеет 16 ГБ физической памяти.Процессор Intel Core i7-8700K CPU @ 3,70 ГГц, 3696 МГц, 6 ядер, 12 логических процессоров.
Now let.
memory.limit(99999)
test1<-rep((1001:2000)/100,60)
Ta<-outer(-test1,test1,"+")
"Ошибка: невозможно выделить вектор размером 26,8Gb "
gc()
Tm<-outer(-test1,test1,"*")
length(Tm)
[1] 3.6e+09
Почему это происходит?Обратите внимание, что число 60, используемое в повторении, может быть уменьшено, чтобы получить успех как для сложения, так и для умножения с использованием внешнего, а также увеличено, чтобы оба одинаково терпели неудачу.Почему существует такой неравномерный порог и почему сложение использует больше памяти, чем умножение в этом смысле?