如何让/usr/bin/time识别我的R环境?



我正在尝试使用/usr/bin/time来测量R脚本的内存使用峰值下面的代码可以正常工作:

Rscript testMemoryUsage.R

:一样

time Rscript testMemoryUsage.R

但是,下面的操作不起作用:

/usr/bin/time Rscript testMemoryUsage.R

这个错误是由于没有找到包:

"库(tidyverse)错误:没有名为' tidyverse '的包调用:suppressPackageStartupMessages ->withCallingHandlers→图书馆停止执行命令以非零状态退出1">

我意识到没有太多可重复的代码,但在概念层面上,为什么shell内置的time命令在这里工作,而不是可执行的/usr/bin/time?如何让/usr/bin/time使用与安装包相同的R环境?谢谢你。

这没有意义,除非您在每个用户的dotfiles中设置了一些不通过/usr/bin/time调用的东西。证人:

$ Rscript -e 'length(Sys.getenv())'
[1] 67
$ time Rscript -e 'length(Sys.getenv())'
[1] 67
real    0m0.355s
user    0m0.289s
sys     0m0.062s
$ /usr/bin/time Rscript -e 'length(Sys.getenv())'
[1] 67
0.31user 0.07system 0:00.39elapsed 98%CPU (0avgtext+0avgdata 65044maxresident)k
0inputs+8outputs (0major+17430minor)pagefaults 0swaps
$ 

我在这里使用R知道的环境变量的数量作为测试,你同样可以使用

$ Rscript -e 'print(.libPaths())'
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library" 
[3] "/usr/lib/R/library"           
$ 

以深入了解设置的不同之处/方式。但简而言之,必须与您如何控制R运行/为您设置的方式有关。

最新更新