using System.Collections.Generic;
private static List<ListTest> testList;
public static List<ListTest> ToTest{
testList = new List<ListTest>();
public static void ListToggle()
for(int i = 0; i < ToTest.Count; i++)
private int currentValue;
public static Action PreUpdate = () => {};
private int currentValue;
public static void Main()
for(int i = 0; i < objects; i++)
var listTest = new ListTest();
for(int i = 0; i < objects; i++)
var actionTest = new ActionTest();
float singleActionTime = 0f;
float singleListTime = 0f;
for(int j = 0; j < runIterations; j++)
var singleListWatch = System.Diagnostics.Stopwatch.StartNew();
var singleActionWatch = System.Diagnostics.Stopwatch.StartNew();
singleActionWatch.Stop();
var listWatch = System.Diagnostics.Stopwatch.StartNew();
for(long i = 0; i < iterations; i++)
var actionWatch = System.Diagnostics.Stopwatch.StartNew();
for(long i = 0; i < iterations; i++)
singleActionTime += singleActionWatch.ElapsedTicks;
singleListTime += singleListWatch.ElapsedTicks;
actionTime += actionWatch.ElapsedMilliseconds;
listTime += listWatch.ElapsedMilliseconds;
singleActionTime /= runIterations;
singleListTime /= runIterations;
actionTime /= runIterations;
listTime /= runIterations;
Console.WriteLine("Single List Execution Time: " + singleListTime.ToString() + " ticks");
Console.WriteLine("Single Action Execution Time: " + singleActionTime.ToString() + " ticks");
Console.WriteLine("List Execution Time: " + listTime.ToString() + " ms");
Console.WriteLine("Action Execution Time: " + actionTime.ToString() + " ms");