r函数别名内存空间

时间:2016-08-22 17:32:49

标签: r function alias

别名是否具有函数定义占用的双重内存空间? 这是替代别名内存保护程序吗?

> ss=subset
> ss(glmC, donchian==don & in_fundo==F & C_V=='C', epsilon2)
  epsilon2
1    1e-07
> ss
function (x, ...) 
UseMethod("subset")
<bytecode: 0x0000000018797e70>
<environment: namespace:base>

# alternative aliasing
> ss=function(...) subset(...)
> ss
function(...) subset(...)
> ss(glmC, donchian==don & in_fundo==F & C_V=='C', epsilon2)
  epsilon2
1    1e-07 

1 个答案:

答案 0 :(得分:0)

  

这是备用别名内存保护程序吗?

不,不是。

ss = subset
ss1 = function(...) subset(...)

object.size(ss)
# 832 bytes
object.size(ss1)
# 1280 bytes

我们也可以使用pryr::object_size,这可能更准确。

library(pryr)
object_size(ss)
# 832 B
object_size(ss1)
# 1.62 kB

然而,差异非常小,很难想象它们会发生什么重要的情况。并且,如果你处于这样一个内存紧张的情况下,大概是最节省内存的解决方案就是不要别名。