Skip to content

Instantly share code, notes, and snippets.

@YevgeniyShunevych
Last active May 24, 2024 21:08
Show Gist options
  • Save YevgeniyShunevych/47749e40a006d622da19d330739346e8 to your computer and use it in GitHub Desktop.
Save YevgeniyShunevych/47749e40a006d622da19d330739346e8 to your computer and use it in GitHub Desktop.
Collection foreach performance benchmarks
| Method | Size | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
|--------------------- |------- |---------------:|--------------:|--------------:|---------------:|------:|--------:|-------:|----------:|------------:|
| Array | 10 | 2.487 ns | 0.0166 ns | 0.0155 ns | 2.487 ns | 1.00 | 0.00 | - | - | NA |
| List | 10 | 5.817 ns | 0.1264 ns | 0.1183 ns | 5.850 ns | 2.34 | 0.05 | - | - | NA |
| ArrayAsIReadOnlyList | 10 | 18.017 ns | 0.3707 ns | 0.3467 ns | 17.979 ns | 7.25 | 0.16 | 0.0051 | 32 B | NA |
| ListAsIReadOnlyList | 10 | 26.952 ns | 0.5576 ns | 0.6848 ns | 27.178 ns | 10.80 | 0.35 | 0.0063 | 40 B | NA |
| ArrayAsIEnumerable | 10 | 17.990 ns | 0.3809 ns | 0.7060 ns | 18.187 ns | 7.32 | 0.15 | 0.0051 | 32 B | NA |
| ListAsIEnumerable | 10 | 26.825 ns | 0.5554 ns | 1.1715 ns | 27.422 ns | 10.52 | 0.52 | 0.0063 | 40 B | NA |
| | | | | | | | | | | |
| Array | 50 | 17.690 ns | 0.3738 ns | 0.7465 ns | 17.976 ns | 1.00 | 0.00 | - | - | NA |
| List | 50 | 27.604 ns | 0.5041 ns | 0.4715 ns | 27.326 ns | 1.57 | 0.09 | - | - | NA |
| ArrayAsIReadOnlyList | 50 | 51.035 ns | 1.0277 ns | 1.6885 ns | 52.211 ns | 2.91 | 0.18 | 0.0051 | 32 B | NA |
| ListAsIReadOnlyList | 50 | 104.618 ns | 0.5261 ns | 0.4393 ns | 104.631 ns | 5.98 | 0.32 | 0.0063 | 40 B | NA |
| ArrayAsIEnumerable | 50 | 50.069 ns | 1.0100 ns | 1.6594 ns | 50.282 ns | 2.86 | 0.17 | 0.0051 | 32 B | NA |
| ListAsIEnumerable | 50 | 113.468 ns | 0.7760 ns | 0.7259 ns | 113.310 ns | 6.47 | 0.33 | 0.0063 | 40 B | NA |
| | | | | | | | | | | |
| Array | 100 | 29.200 ns | 0.0760 ns | 0.0674 ns | 29.212 ns | 1.00 | 0.00 | - | - | NA |
| List | 100 | 47.899 ns | 0.5548 ns | 0.5190 ns | 48.073 ns | 1.64 | 0.02 | - | - | NA |
| ArrayAsIReadOnlyList | 100 | 88.358 ns | 1.7968 ns | 1.6807 ns | 88.821 ns | 3.02 | 0.06 | 0.0050 | 32 B | NA |
| ListAsIReadOnlyList | 100 | 203.462 ns | 4.0799 ns | 9.0408 ns | 208.155 ns | 6.79 | 0.34 | 0.0062 | 40 B | NA |
| ArrayAsIEnumerable | 100 | 94.522 ns | 0.3177 ns | 0.2972 ns | 94.588 ns | 3.24 | 0.01 | 0.0050 | 32 B | NA |
| ListAsIEnumerable | 100 | 214.392 ns | 4.3003 ns | 7.9709 ns | 213.548 ns | 7.22 | 0.20 | 0.0062 | 40 B | NA |
| | | | | | | | | | | |
| Array | 1000 | 233.422 ns | 2.7381 ns | 3.0434 ns | 232.184 ns | 1.00 | 0.00 | - | - | NA |
| List | 1000 | 406.459 ns | 8.0561 ns | 11.5538 ns | 411.506 ns | 1.73 | 0.05 | - | - | NA |
| ArrayAsIReadOnlyList | 1000 | 744.535 ns | 14.6040 ns | 25.1912 ns | 760.322 ns | 3.19 | 0.12 | 0.0048 | 32 B | NA |
| ListAsIReadOnlyList | 1000 | 1,855.351 ns | 36.4642 ns | 67.5887 ns | 1,889.276 ns | 7.86 | 0.33 | 0.0038 | 40 B | NA |
| ArrayAsIEnumerable | 1000 | 752.474 ns | 2.9052 ns | 2.7175 ns | 752.891 ns | 3.22 | 0.04 | 0.0048 | 32 B | NA |
| ListAsIEnumerable | 1000 | 1,862.389 ns | 37.0472 ns | 53.1320 ns | 1,885.792 ns | 7.95 | 0.30 | 0.0057 | 40 B | NA |
| | | | | | | | | | | |
| Array | 10000 | 2,252.686 ns | 5.7053 ns | 5.3368 ns | 2,250.212 ns | 1.00 | 0.00 | - | - | NA |
| List | 10000 | 3,535.160 ns | 12.1490 ns | 11.3641 ns | 3,534.266 ns | 1.57 | 0.01 | - | - | NA |
| ArrayAsIReadOnlyList | 10000 | 7,264.641 ns | 27.0288 ns | 23.9603 ns | 7,271.086 ns | 3.23 | 0.01 | - | 32 B | NA |
| ListAsIReadOnlyList | 10000 | 18,415.223 ns | 365.7004 ns | 580.0395 ns | 18,613.422 ns | 8.10 | 0.32 | - | 40 B | NA |
| ArrayAsIEnumerable | 10000 | 7,103.603 ns | 140.7172 ns | 293.7292 ns | 7,202.216 ns | 3.21 | 0.13 | - | 32 B | NA |
| ListAsIEnumerable | 10000 | 21,345.506 ns | 177.4028 ns | 174.2333 ns | 21,340.309 ns | 9.46 | 0.04 | - | 40 B | NA |
| | | | | | | | | | | |
| Array | 100000 | 22,430.564 ns | 40.7776 ns | 36.1483 ns | 22,420.122 ns | 1.00 | 0.00 | - | - | NA |
| List | 100000 | 35,678.046 ns | 142.3120 ns | 133.1188 ns | 35,686.804 ns | 1.59 | 0.01 | - | - | NA |
| ArrayAsIReadOnlyList | 100000 | 72,420.371 ns | 1,435.4472 ns | 2,696.1178 ns | 72,551.416 ns | 3.11 | 0.12 | - | 32 B | NA |
| ListAsIReadOnlyList | 100000 | 188,025.803 ns | 3,729.3438 ns | 5,695.1019 ns | 189,703.296 ns | 8.37 | 0.29 | - | 40 B | NA |
| ArrayAsIEnumerable | 100000 | 72,014.691 ns | 1,242.5979 ns | 1,220.3973 ns | 72,292.322 ns | 3.23 | 0.01 | - | 32 B | NA |
| ListAsIEnumerable | 100000 | 186,096.727 ns | 3,719.1914 ns | 7,680.7751 ns | 190,972.241 ns | 8.55 | 0.06 | - | 40 B | NA |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment