Laufzeiten – Pre-Allocation
In der vorherigen Übung hat das Wachsenlassen des Vektors etwa 2 Sekunden gedauert.
Wie lange dauert es, wenn wir den Vektor vorab allokieren? Die Funktion pre_allocate() ist unten definiert.
n <- 30000
# Schneller Code
pre_allocate <- function(n) {
x <- numeric(n) # Vorab allokieren
for(i in 1:n)
x[i] <- rnorm(1)
x
}
Diese Übung ist Teil des Kurses
<Kurs>Effizient R-Code schreiben</Kurs>Übungsanweisungen
Die Funktion pre_allocate() steht dir in deinem Workspace zur Verfügung.
- Ermittle mit
system.time(), wie langepre_allocate(n)benötigt. Verwende den<--Trick, um das Ergebnis im Objektres_allocatezu speichern.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Use <- with system.time() to store the result as res_allocate
n <- 30000
system.time(___ <- ___)