Skip to content

Commit

Permalink
StaticFieldProgram -> ArrayIterationProgram
Browse files Browse the repository at this point in the history
  • Loading branch information
AndreyAkinshin committed Aug 29, 2013
1 parent 9d57e69 commit 7cca771
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 4 deletions.
Expand Up @@ -2,9 +2,9 @@

namespace Benchmarks
{
public class StaticFieldProgram
public class ArrayIterationProgram
{
private const int N = 1000, IterationCount = 1000000;
private const int NUnroll = 1000, N = 1001, IterationCount = 1000000;

private int[] nonStaticField;
private static int[] staticField;
Expand All @@ -14,11 +14,31 @@ public void Run()
nonStaticField = staticField = new int[N];

var competition = new BenchmarkCompetition();
competition.AddTask("Non-static/unroll", () => NonStaticUnrollRun());
competition.AddTask("Static/unroll", () => StaticUnrollRun());
competition.AddTask("Non-static", () => NonStaticRun());
competition.AddTask("Static", () => StaticRun());
competition.Run();
}

private int NonStaticUnrollRun()
{
int sum = 0;
for (int iteration = 0; iteration < IterationCount; iteration++)
for (int i = 0; i < NUnroll; i++)
sum += nonStaticField[i];
return sum;
}

private int StaticUnrollRun()
{
int sum = 0;
for (int iteration = 0; iteration < IterationCount; iteration++)
for (int i = 0; i < NUnroll; i++)
sum += staticField[i];
return sum;
}

private int NonStaticRun()
{
int sum = 0;
Expand Down
2 changes: 1 addition & 1 deletion Benchmarks/Benchmarks.csproj
Expand Up @@ -48,7 +48,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ShiftVsMultiplyProgram.cs" />
<Compile Include="ReverseSortProgram.cs" />
<Compile Include="StaticFieldProgram.cs" />
<Compile Include="ArrayIterationProgram.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BenchmarkDotNet\BenchmarkDotNet.csproj">
Expand Down
2 changes: 1 addition & 1 deletion Benchmarks/Program.cs
Expand Up @@ -12,7 +12,7 @@ class Program
{
new ProgramRunner("Increment", () => new IncrementProgram().Run()),
new ProgramRunner("MultidimensionalArray", () => new MultidimensionalArrayProgram().Run()),
new ProgramRunner("StaticField", () => new StaticFieldProgram().Run()),
new ProgramRunner("ArrayIteration", () => new ArrayIterationProgram().Run()),
new ProgramRunner("ShiftVsMultiply", () => new ShiftVsMultiplyProgram().Run()),
new ProgramRunner("ReverseSort", () => new ReverseSortProgram().Run()),
new ProgramRunner("MakeRefVsBoxing", () => new MakeRefVsBoxingProgram().Run()),
Expand Down

0 comments on commit 7cca771

Please sign in to comment.