Я пытаюсь понять, как система подсчета ссылок в R v4 улучшает использование памяти.
Согласно https://blog.revolutionanalytics.com/2019/12/preview-of-r-400.html
При удалении объект в R, он обычно освобождает связанную память обратно в операционную систему. Аналогично, если вы копируете объект с y <- x
, R не выделит новую память для y, если x не будет позже изменен. Однако в текущих версиях R эта система выходит из строя, если имеется более двух ссылок на какой-либо блок памяти. Начиная с R 4.0.0, все ссылки будут подсчитаны
Если я правильно понимаю, если я добавлю z<-x
, то новое место в памяти должно использоваться хотя бы для одного из этих объекты.
> sessionInfo()
R version 3.6.2 (2019-12-12)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17134)
> x<-2
> tracemem(x)
[1] "<000001D961ADBEA8>"
> y<-x
> tracemem(y)
[1] "<000001D961ADBEA8>"
> z<-x
> tracemem(z)
[1] "<000001D961ADBEA8>"
> w<-x
> tracemem(w)
[1] "<000001D961ADBEA8>"
это не похоже на случай с R 3.6.2.
Может кто-нибудь привести пример, чтобы показать, как система подсчета ссылок в R v4 отличается от R v3?