Código de precio de stock de simulación R - Lento - Monte Carlo

Necesito realizar una simulación del precio de las acciones usando el código R El problema es que el código es un poco lento. Básicamente, necesito simular el precio de las acciones para cada paso de tiempo (diario) y almacenarlo en una matriz.

Un ejemplo que asume que el proceso de stock es Geometric Brownian Motion

for(j in 1:100000){
    for(i in 1:252){
        S[i] <- S[i-1]*exp((r-v^2/2)*dt+v*sqrt(dt)*rnorm(1))
    }
    U[j,] <- S
}

¿Alguna sugerencia para mejorar y acelerar el código?