Performance Comparison between for, foreach, and ForEeach() method


BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3007/23H2/2023Update/SunValley3)
AMD Ryzen 7 5800H with Radeon Graphics, 1 CPU, 16 logical and 8 physical cores
.NET SDK 8.0.101
  [Host]                 : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT AVX2
  ShortRun-.NET 5.0      : .NET 5.0.17 (5.0.1722.21314), X64 RyuJIT AVX2
  ShortRun-.NET 6.0      : .NET 6.0.26 (6.0.2623.60508), X64 RyuJIT AVX2
  ShortRun-.NET 7.0      : .NET 7.0.15 (7.0.1523.57226), X64 RyuJIT AVX2
  ShortRun-.NET 8.0      : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT AVX2
  ShortRun-.NET Core 3.0 : .NET Core 3.1.32 (CoreCLR 4.700.22.55902, CoreFX 4.700.22.56512), X64 RyuJIT AVX2
  ShortRun-.NET Core 3.1 : .NET Core 3.1.32 (CoreCLR 4.700.22.55902, CoreFX 4.700.22.56512), X64 RyuJIT AVX2

IterationCount=3  LaunchCount=1  WarmupCount=3

Comparison: Mean

MethodCategoriesLength.NET Core 3.0.NET Core 3.1.NET 5.0.NET 6.0.NET 7.0.NET 8.0
for Array 1000 286.5 ns 288.7 ns 267.8 ns 244.0 ns 239.9 ns 239.1 ns
foreach Array 1000 465.4 ns 235.7 ns 487.2 ns 235.9 ns 238.4 ns 234.4 ns
ForEach() Array 1000 1,627.6 ns 1,397.3 ns 1,424.1 ns 1,410.8 ns 1,476.6 ns 467.2 ns
MethodCategoriesLength.NET Core 3.0.NET Core 3.1.NET 5.0.NET 6.0.NET 7.0.NET 8.0
for List 1000 472.1 ns 473.1 ns 354.0 ns 353.6 ns 475.0 ns 353.5 ns
ForEach() List 1000 1,631.3 ns 1,467.3 ns 1,632.8 ns 1,646.3 ns 1,560.1 ns 704.2 ns
foreach List 1000 1,658.8 ns 1,653.8 ns 1,868.0 ns 706.2 ns 470.3 ns 407.7 ns
Powered by https://github.com/mjebrahimi/BenchmarkDotNetVisualizer