Tidsmätning – förallokering
I föregående övning tog det ungefär 2 sekunder att utöka vektorn.
Hur lång tid tar det när vi förallokerar vektorn? Funktionen pre_allocate() definieras nedan.
n <- 30000
# Fast code
pre_allocate <- function(n) {
x <- numeric(n) # Pre-allocate
for(i in 1:n)
x[i] <- rnorm(1)
x
}
Den här övningen är en del av kursen
Effektiv R-kod
Övningsinstruktioner
Funktionen pre_allocate() finns tillgänglig i din arbetsmiljö.
- Använd
system.time()för att mäta hur lång tid det tar att körapre_allocate(n). Använd<--tricket för att spara resultatet i objektetres_allocate.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Use <- with system.time() to store the result as res_allocate
n <- 30000
system.time(___ <- ___)