public ResultSets ReadArrayElements(NestedLoop args) { int tests = 500; var timer = new Stopwatch(); Random rand = new Random(); // Initialize arrays loops = args.Loop1; subLoops = args.Loop2; array = new int[subLoops]; for (int i = 0; i < subLoops; i++) { array[i] = (int)(rand.NextDouble() * 2); } randIndexes = new int[loops]; for (int i = 0; i < loops; i++) { randIndexes[i] = (int)(rand.NextDouble() * loops); } long baseTotal = 0; long baseRandomTotal = 0; long randomTotal = 0; long orderedTotal = 0; for (int a = 0; a < tests; a++) { timer.Restart(); BaseIncrement(loops, subLoops); baseTotal += timer.StopNanos(); timer.Restart(); BaseRandom(loops, subLoops); baseRandomTotal += timer.StopNanos(); timer.Restart(); ArrayOrdered(loops, subLoops); orderedTotal += timer.StopNanos(); timer.Restart(); ArrayRandom(loops, subLoops); randomTotal += timer.StopNanos(); } return(ResultSets.builder("Array lookups by type") .StartGroup((string)null) .AddStepResult(StepDescriptor.Of("base (loop>loop>var++)", tests, loops, subLoops), baseTotal) .AddStepResult(StepDescriptor.Of("base random (loop>array[i]>loop>var++)", tests, loops, subLoops), baseRandomTotal) .AddStepResult(StepDescriptor.Of("random (loop>array[i]>loop>array[i])", tests, loops, subLoops), randomTotal) .AddStepResult(StepDescriptor.Of("ordered (loop>loop>array[i])", tests, loops, subLoops), orderedTotal) .EndGroup() .Build()); }
static void Main(string[] args) { Console.WriteLine("Performance Test 1..."); Inlining.Measure(NestedLoop.Of(500, 500), new ProgressTracker(0.05, (p) => Console.WriteLine(p * 100 + "%"))); var res = Inlining.Measure(NestedLoop.Of(2000, 2000), new ProgressTracker(0.05, (p) => Console.WriteLine(p * 100 + "%"))); Console.WriteLine(res.ToString(TimeUnit.MILLI, 3)); Console.WriteLine(string.Join(", ", res.TempResults)); Console.WriteLine("Performance Test 2..."); new ArrayAccess().ReadArrayElements(NestedLoop.Of(500, 500)); Print(new ArrayAccess().ReadArrayElements(NestedLoop.Of(2000, 2000))); Console.Read(); }
public static PerformanceStepLog Measure(NestedLoop args, ProgressTracker progressCb = null) { int loops = args.Loop1; int innerLoops = args.Loop2; var res = new PerformanceStepLog("method inlining"); var resInln = new PerformanceLoopLog("inline", innerLoops + " method calls per loop"); var resHlpr = new PerformanceLoopLog("helper", innerLoops + " method calls per loop"); var resHlprInln = new PerformanceLoopLog("helper-inline-annotation", innerLoops + " method calls per loop"); int temp1 = 0; int temp2 = 0; int temp3 = 0; if (progressCb != null) { progressCb.ResetTotalSteps(loops); } for (int i = 0; i < loops; i++) { RunInline(i); RunWithHelper(i); RunWithHelperInlineHint(i); temp1 += TaskRunner.RunTimedLoop(innerLoops, RunInline, resInln); temp2 += TaskRunner.RunTimedLoop(innerLoops, RunWithHelper, resHlpr); temp3 += TaskRunner.RunTimedLoop(innerLoops, RunWithHelperInlineHint, resHlprInln); if (progressCb != null) { progressCb.Step(); } } res.Steps.Add(resInln); res.Steps.Add(resHlpr); res.Steps.Add(resHlprInln); res.TempResults.Add(temp1); res.TempResults.Add(temp2); res.TempResults.Add(temp3); return(res); }
// side methods void programLoader(int programState) { switch (programState) { // Gholizadeh practices case 1: Console.Clear(); var numPrinter = new NumPrinter(); numPrinter.Printer(); break; case 2: Console.Clear(); var whileTest = new WhileTest(); whileTest.WhileTester(); break; case 3: Console.Clear(); var nestedLoop = new NestedLoop(); nestedLoop.NestedLoopTester(); break; case 4: Console.Clear(); var primeCheck = new PrimeCheck(); primeCheck.PrimeChecker(); break; case 5: Console.Clear(); var elitePrimeCheck = new ElitePrimeCheck(); elitePrimeCheck.ElitePrimeChecker(); break; case 6: Console.Clear(); var powerNumber = new PowerNumber(); powerNumber.PowerNumberDealer(); break; case 7: Console.Clear(); var arkanoidMechanic = new ArkanoidMechanic(); arkanoidMechanic.MainMenu(); break; case 8: Console.Clear(); var snakeMainLoop = new SnakeMainLoop(); snakeMainLoop.GameLaunch(); break; case 9: Console.Clear(); var grandStringPrinter = new GrandStringPrinter(); grandStringPrinter.stringPrinter(); break; // Udemy practices case 10: Console.Clear(); var EnumsTest = new EnumsTest(); EnumsTest.enumTester(); Console.ReadKey(); break; case 11: Console.Clear(); int number = 1; var valueTypesAndReferenceTypes = new ValueTypesAndReferenceType(); valueTypesAndReferenceTypes.Increment(number); Console.WriteLine(number); Console.WriteLine("press 'enter' to continue"); Console.ReadKey(); valueTypesAndReferenceTypes.Age = 20; valueTypesAndReferenceTypes.MakeOld(valueTypesAndReferenceTypes); Console.WriteLine(valueTypesAndReferenceTypes.Age); Console.WriteLine("press 'enter' to continue"); Console.ReadKey(); break; case 12: Console.Clear(); var controlFlowExercisesP1 = new ControlFlowExercises(); controlFlowExercisesP1.ControlFlowExercisePart1(); break; case 13: Console.Clear(); var controlFlowExercisesP2 = new ControlFlowExercises(); controlFlowExercisesP2.ControlFlowExercisePart2(); break; case 14: Console.Clear(); var arraysAndListsExercises = new ArraysAndListsExercises(); arraysAndListsExercises.ArraysAndListExecise(); break; case 15: Console.Clear(); var workingWithTexts = new WorkingWithTexts(); workingWithTexts.StringFunctions(); break; case 16: Console.Clear(); var workingWithDates = new WorkingWithDates(); workingWithDates.ShowTimeAndDate(); break; case 17: Console.Clear(); var workingWithFiles = new WorkingWithFiles(); workingWithFiles.FileAndFileInfo(); break; case 18: Console.Clear(); var republicStart = new RepublicStart(); republicStart.StartTheRegime(); break; case 19: Console.Clear(); var knightAttributeHandler = new KnightAttributeHandler(); knightAttributeHandler.BuildKnight(); break; case 20: Console.Clear(); var constructorAndObjInitializer = new ConstructorAndObjInitializer { PersonName = "ali", PersonAge = 10, PersonHeight = 110 }; constructorAndObjInitializer.ShowPersonInfo(); break; case 21: Console.Clear(); var personIdentifier = new PersonIdentifier(); personIdentifier.IntroducePerson(); break; case 22: Console.Clear(); var cookieAccessor = new CookieAccessor(); cookieAccessor.AccessUser(); break; case 23: Console.Clear(); var stackOverflowUser = new StackOverflowUser(); stackOverflowUser.ProgramStart(); break; case 24: Console.Clear(); var stopwatch = new Stopwatch(); stopwatch.WatchFunction(); break; case 25: Console.Clear(); var serverTest01 = new ServerTest01(); serverTest01.ServerSetup(); break; case 26: Console.Clear(); var animals = new Animals(); animals.Specimen(); break; case 27: Console.Clear(); var bufferSizeExample = new ConsoleBufferSizeExample(); bufferSizeExample.ScreenBuffer(); break; case 28: Console.Clear(); var barcodeRangeGame = new BarcodeRangeGame(); barcodeRangeGame.RangeCalculator(); break; default: break; } }
private static IEnumerable<string> Compose(IEnumerable[] parts) { var loop = new NestedLoop(parts); var ls = new List<string>(); loop.Last().LoopStart += (nestedLoop, args) => ls.Add(StringHelper.ConcatWith("{0}", nestedLoop.Select(l => l.Value ?? String.Empty))); loop.Loop(); return ls; }
public int BaseRandom(NestedLoop args) { return(BaseRandom(args.Loop1, args.Loop2)); }
public int BaseIncrement(NestedLoop args) { return(BaseIncrement(args.Loop1, args.Loop2)); }
public int ArrayOrdered(NestedLoop args) { return(ArrayOrdered(args.Loop1, args.Loop2)); }
public int ArrayRandom(NestedLoop args) { return(ArrayRandom(args.Loop1, args.Loop2)); }
protected LoopNotifier(NestedLoop loop) { this.loop = loop; }