我正在尝试使用/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运行/为您设置的方式有关。