R语言pointr包指针:如何查看指针自身的内存占用?
查看pointr指针自身内存大小的方法
pointr包创建的“指针”本质是依托R的环境对象实现的引用,object.size()会递归计算对象关联的所有内容,所以返回的是指针指向变量的内存,而非指针本身。下面是两种查看指针自身内存的方法:
方法1:使用pryr包的object_size()函数
pryr包的object_size()函数能精准计算对象自身的内存占用,不会递归展开引用的外部对象。操作步骤:
- 安装并加载pryr:
install.packages("pryr") library(pryr) - 计算指针自身大小:
这个结果就是指针(环境引用)本身的内存开销,和library(pointr) myvar <- 3 ptr("mypointer", "myvar") # 获取指针自身的内存大小 object_size(mypointer)myvar的大小无关。
方法2:通过空环境估算指针基础内存
pointr的指针是一个仅包含目标变量引用的环境,你可以先查看空环境的内存大小,以此近似指针的基础开销:
# 创建空环境 empty_env <- new.env() object.size(empty_env)
实际指针的内存会比空环境略大一点,因为多了一个指向目标变量的引用,但差值很小。
内容的提问来源于stack exchange,提问作者Aku-Ville Lehtimäki
相关产品推荐
相关产品推荐

