私はこのコードを持っています:
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
私はそれをテストし、これらの結果を得ました:
0ms
200ms
どのようにしArray.zeroCreate
て配列を非常に高速に作成し、すべての要素がデフォルト値を持つことが保証されますか? 他の言語では、そのような可能性はありません (私の知る限り)。他の言語では、ガベージが存在するメモリ内で初期化できるため、要素がデフォルト値を持つことが保証されていない配列の高速初期化についてしか知りません。
ありがとう!