F #: ¿Por qué Array.createZero es tan rápido?
Tengo este codigo:
let timer = new System.Diagnostics.Stopwatch()
timer.Start()
Array.zeroCreate<int> 100000000
timer.Stop()
printfn "%ims" timer.ElapsedMilliseconds
timer.Reset()
timer.Start()
Array.create 100000000 0
timer.Stop()
printfn "%ims" timer.ElapsedMilliseconds
Lo probé y obtuve estos resultados:
0ms
200ms
CómoArray.zeroCreate
crea una matriz tan rápido y se garantiza que todos sus elementos tienen un valor predeterminado? En otros idiomas sé que no hay tales posibilidades (hasta donde yo sé). En otros idiomas, solo sé sobre la inicialización rápida de la matriz, cuyos elementos no tienen garantizado que tengan un valor predeterminado, porque pueden inicializarse en la memoria donde se encuentra algo de basura.
¡Gracias!