J'ai un script avec des fonctions auto-écrites (pas de tracés). Lorsque je copie-colle ce script dans la console de R-Studio, il met des lustres à s'exécuter, mais lorsque j'utilise source("Helperfunctions.R")
ça ne prend pas plus d'une seconde.
Question : D'où vient la différence de vitesse ?
Je suis conscient de deux différences entre l'exécution du code via l'option source()
par rapport à la saisie du code sur la console R-Studio :
En ?source
:
Comme les expressions ne sont pas exécutées au niveau supérieur, l'auto-impression n'est pas effectuée.
La façon dont je comprends ça : source()
sera pas tracer des graphiques (à moins que cela ne soit spécifié avec par ex. print(plot)
), tandis que les codes de la console R Studio sera toujours tracer des graphiques. Je suis sûr que cela affectera la vitesse d'exécution jusqu'à un certain point, mais cela ne semble pas pertinent dans mon cas, car il n'y a pratiquement aucun appel de tracé.
Et :
(...) le fichier complet est analysé avant d'être exécuté.
J'ai travaillé avec R
depuis un certain temps maintenant, mais je ne suis pas sûr que cela soit pertinent pour le problème de vitesse que je rencontre. Est-il possible que l'analyse complète de tout le code "avant qu'il ne soit exécuté" accélère l'exécution de mes fonctions d'aide script par un facteur de cent ?
Editar : J'utilise la version 3.2.3 de R.