Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        // 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;
            }
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
 public int BaseRandom(NestedLoop args)
 {
     return(BaseRandom(args.Loop1, args.Loop2));
 }
Ejemplo n.º 7
0
 public int BaseIncrement(NestedLoop args)
 {
     return(BaseIncrement(args.Loop1, args.Loop2));
 }
Ejemplo n.º 8
0
 public int ArrayOrdered(NestedLoop args)
 {
     return(ArrayOrdered(args.Loop1, args.Loop2));
 }
Ejemplo n.º 9
0
 public int ArrayRandom(NestedLoop args)
 {
     return(ArrayRandom(args.Loop1, args.Loop2));
 }
Ejemplo n.º 10
0
 protected LoopNotifier(NestedLoop loop)
 {
     this.loop = loop;
 }