别名是否具有函数定义占用的双重内存空间? 这是替代别名内存保护程序吗?
> 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
答案 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
然而,差异非常小,很难想象它们会发生什么重要的情况。并且,如果你处于这样一个内存紧张的情况下,大概是最节省内存的解决方案就是不要别名。