...outre le fait que Rscript est invoqué avec #!/usr/bin/env Rscript
et littler avec #!/usr/local/bin/r
(sur mon système) dans la première ligne du fichier de script. J'ai trouvé certaines différences dans la vitesse d'exécution (on dirait que littler est un peu plus lent).
J'ai créé deux factice scripts, couru chaque 1000 fois et par rapport à la moyenne de temps d'exécution.
Voici la Rscript fichier:
#!/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)
et voici le littler fichier:
#!/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)
Comme vous pouvez le voir, ils sont presque identiques (première ligne et lavabo fichier argument différent). La sortie est - sink
ed dans un fichier texte, donc importé dans R avec read.table
. J'ai créé le script bash pour exécuter chaque script de 1000 fois, puis calculé les moyennes.
Voici script bash:
for i in `seq 1000`
do
./$1
echo "####################"
echo "Iteration #$i"
echo "####################"
done
Et les résultats sont les suivants:
# 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
Longue histoire courte: à côté (évidente) de l'exécution de différence de temps, est-il une autre différence? La question importante est: pourquoi devrait/ne devrait pas vous préférez littler sur Rscript (ou vice versa)?