r 函数别名内存 space

r function alias memory space

别名函数是否双倍内存space被函数定义占用? 这是另一种别名内存保护程序吗?

> 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 

Is this alternative aliasing memory saver?

不,不是。

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

然而,差异是如此之小,以至于很难想象它们会产生影响的情况。而且,如果您处于内存紧张的情况下,最节省内存的解决方案可能是根本不使用别名。