Ich möchte die Leistung einiger Code in verschiedenen Versionen von R bewerten. Dies ist im Prinzip einfach:
system.time()
, um die Zeit zu messen, die zum Ausführen eines Codeabschnitts benötigt wird Ich möchte jetzt knitr
verwenden, um einen Bericht dafür zu erstellen. Also, es scheint mir, ich brauche einen Mechanismus, um eine neue Sitzung in jedem Stück zu starten.
Wie mache ich das?
Einige Beispiele für knitr
Markdown-Code, die als Demonstration dienen sollen. Dieser Code zeichnet eine Grafik mit ggplot
, aber beide Versionen geben identische Timings zurück, da ich nicht weiß, wie man eine neue Version von R für jeden Chunk startet.
Das Hinzufügen der Rscript
Engine in knitr
war einfach , aber ich wurde von ein R-Fehler . Wie auch immer, diese Engine ist seit Version 1.1.5 verfügbar und wird als Version 1.2 auf CRAN erscheinen.
Jetzt können Sie die Chunk-Option engine='Rscript'
und engine.path='path/to/the/desired/Rscript'
angeben.
Für große Leistungsvergleiche denke ich, was Ari B. Friedman im obigen Kommentar vorgeschlagen hat, ist ein besserer Weg. Es wird ziemlich mühsam sein, die Engine-Pfade einzugeben, wenn Sie viele Code-Chunks für Vergleiche haben.