メインメニューを開く

差分

System.Numerics.Vector<T>

1,137 バイト追加, 2020年5月27日 (水) 04:57
編集の要約なし
vector.CopyTo(array, index);
}
</source>
 
== ベンチマーク ==
[[BenchmarkDotNet]]で単純な[[インクリメント]]を比較してみた。
 
備考:比較対象のScalarOpはこんな感じ。
<source lang="csharp">
for (int index = 0; index < arraySize; index ++)
{
array[index] += 1;
}
</source>
 
結果。
<source>
BenchmarkDotNet=v0.12.1, OS=macOS Catalina 10.15.4 (19E287) [Darwin 19.4.0]
Intel Core i7-8700B CPU 3.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=3.1.300
[Host] : .NET Core 3.1.4 (CoreCLR 4.700.20.20201, CoreFX 4.700.20.22101), X64 RyuJIT
Job-AGKFKU : .NET Core 3.1.4 (CoreCLR 4.700.20.20201, CoreFX 4.700.20.22101), X64 RyuJIT
 
InvocationCount=1 UnrollFactor=1
 
| Method | ArraySize | Mean | Error | StdDev | Median |
|--------- |---------- |----------:|----------:|---------:|----------:|
| ScalarOp | 512 | 320.43 ns | 10.136 ns | 29.89 ns | 315.00 ns |
| VectorOp | 512 | 159.76 ns | 9.236 ns | 27.09 ns | 166.50 ns |
| ScalarOp | 1024 | 574.93 ns | 13.965 ns | 13.06 ns | 575.00 ns |
| VectorOp | 1024 | 169.69 ns | 9.599 ns | 28.00 ns | 170.50 ns |
</source>