...スクリプトファイルの最初の行で、(私のシステムでは)Rscriptが(私のシステムでは)で呼び出され、#!/usr/bin/env Rscript
少しだけ呼び出されるという事実に加えて。#!/usr/local/bin/r
実行速度に一定の違いがあることがわかりました(少し小さいほど少し遅いようです)。
2つのダミースクリプトを作成し、それぞれ1000回実行して、平均実行時間を比較しました。
Rscriptファイルは次のとおりです。
#!/usr/bin/env Rscript
btime <- proc.time()
x <- rnorm(100)
print(x)
print(plot(x))
etime <- proc.time()
tm <- etime - btime
sink(file = "rscript.r.out", append = TRUE)
cat(paste(tm[1:3], collapse = ";"), "\n")
sink()
print(tm)
そしてここに小さなファイルがあります:
#!/usr/local/bin/r
btime <- proc.time()
x <- rnorm(100)
print(x)
print(plot(x))
etime <- proc.time()
tm <- etime - btime
sink(file = "little.r.out", append = TRUE)
cat(paste(tm[1:3], collapse = ";"), "\n")
sink()
print(tm)
ご覧のとおり、これらはほとんど同じです(最初の行とシンクファイルの引数が異なります)。出力はsink
テキストファイルに編集されるため、Rに。を使用してインポートされますread.table
。各スクリプトを1000回実行するbashスクリプトを作成し、平均を計算しました。
これがbashスクリプトです:
for i in `seq 1000`
do
./$1
echo "####################"
echo "Iteration #$i"
echo "####################"
done
そして結果は次のとおりです。
# littler script
> mean(lit)
user system elapsed
0.489327 0.035458 0.588647
> sapply(lit, median)
L1 L2 L3
0.490 0.036 0.609
# Rscript
> mean(rsc)
user system elapsed
0.219334 0.008042 0.274017
> sapply(rsc, median)
R1 R2 R3
0.220 0.007 0.258
簡単に言うと、(明らかな)実行時間の違いのほかに、他に何か違いはありますか?より重要な質問は次のとおりです。Rscriptよりも少しだけ(またはその逆に)優先する必要がある/すべきではないのはなぜですか?