... neben der Tatsache, dass Rscript mit #!/usr/bin/env Rscript
und weggeworfener mit #!/usr/local/bin/r
(auf meinem System) aufgerufen wird, in erster Linie der Skriptdatei. Ich habe bestimmte Unterschiede in der Ausführungsgeschwindigkeit gefunden (scheint littler ist ein bisschen langsamer).Unterschied zwischen Rscript und weggeworfener
Ich habe zwei Dummy-Skripts erstellt, die jeweils 1000 Mal ausgeführt und durchschnittliche Ausführungszeit verglichen.
Hier ist die Rscript Datei:
#!/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)
und hier ist die littler Datei:
#!/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)
Wie Sie sehen können, sind sie fast identisch (erste Zeile und versenken Dateiargument unterscheiden). Ausgabe ist sink
Ed in Textdatei, daher in R mit importiert. Ich habe ein Bash-Skript erstellt, um jedes Skript 1000-mal auszuführen, dann berechnete Durchschnittswerte.
Hier Bash-Skript:
for i in `seq 1000`
do
./$1
echo "####################"
echo "Iteration #$i"
echo "####################"
done
Und die Ergebnisse sind:
# 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
lange Kurzgeschichte: neben (offensichtlich) execution-Zeitdifferenz, gibt es einen anderen Unterschied? Wichtigere Frage ist: Warum sollten/sollten Sie nicht bevorzugen little über Rscript (oder umgekehrt)?
+1 Große Frage; liebe das Detail. – Shane
Danke Shane, Datendatei ist hier verfügbar: http://bit.ly/ac0Fb1 Beachten Sie, dass ich sehr langsame Maschine habe. Wenn Sie also diese Skripts ausführen, erhalten Sie wahrscheinlich niedrigere Werte. Dirks großartige Antworten, wie immer, haben die Aufmerksamkeit auf andere Probleme mit diesen Benchmark-Skripten gelenkt ... also nimm diese Ergebnisse cum grano salis. – aL3xa