Beispiel #1
0
        internal Engine(
            IHost host,
            IResolver resolver,
            Action dummy1Action, Action dummy2Action, Action dummy3Action, Action <long> overheadAction, Action <long> workloadAction, Job targetJob,
            Action globalSetupAction, Action globalCleanupAction, Action iterationSetupAction, Action iterationCleanupAction, long operationsPerInvoke,
            bool includeMemoryStats, Encoding encoding)
        {
            Host                    = host;
            OverheadAction          = overheadAction;
            Dummy1Action            = dummy1Action;
            Dummy2Action            = dummy2Action;
            Dummy3Action            = dummy3Action;
            WorkloadAction          = workloadAction;
            TargetJob               = targetJob;
            GlobalSetupAction       = globalSetupAction;
            GlobalCleanupAction     = globalCleanupAction;
            IterationSetupAction    = iterationSetupAction;
            IterationCleanupAction  = iterationCleanupAction;
            OperationsPerInvoke     = operationsPerInvoke;
            this.includeMemoryStats = includeMemoryStats;

            Resolver = resolver;
            Encoding = encoding;

            Clock            = targetJob.ResolveValue(InfrastructureMode.ClockCharacteristic, Resolver);
            ForceAllocations = targetJob.ResolveValue(GcMode.ForceCharacteristic, Resolver);
            UnrollFactor     = targetJob.ResolveValue(RunMode.UnrollFactorCharacteristic, Resolver);
            Strategy         = targetJob.ResolveValue(RunMode.RunStrategyCharacteristic, Resolver);
            EvaluateOverhead = targetJob.ResolveValue(AccuracyMode.EvaluateOverheadCharacteristic, Resolver);
            InvocationCount  = targetJob.ResolveValue(RunMode.InvocationCountCharacteristic, Resolver);

            warmupStage = new EngineWarmupStage(this);
            pilotStage  = new EnginePilotStage(this);
            actualStage = new EngineActualStage(this);
        }
Beispiel #2
0
        internal Engine(
            IHost host,
            IResolver resolver,
            Action dummy1Action, Action dummy2Action, Action dummy3Action, Action <long> overheadAction, Action <long> workloadAction, Job targetJob,
            Action globalSetupAction, Action globalCleanupAction, Action iterationSetupAction, Action iterationCleanupAction, long operationsPerInvoke,
            bool includeExtraStats, string benchmarkName)
        {
            Host                   = host;
            OverheadAction         = overheadAction;
            Dummy1Action           = dummy1Action;
            Dummy2Action           = dummy2Action;
            Dummy3Action           = dummy3Action;
            WorkloadAction         = workloadAction;
            TargetJob              = targetJob;
            GlobalSetupAction      = globalSetupAction;
            GlobalCleanupAction    = globalCleanupAction;
            IterationSetupAction   = iterationSetupAction;
            IterationCleanupAction = iterationCleanupAction;
            OperationsPerInvoke    = operationsPerInvoke;
            this.includeExtraStats = includeExtraStats;
            BenchmarkName          = benchmarkName;

            Resolver = resolver;

            Clock               = targetJob.ResolveValue(InfrastructureMode.ClockCharacteristic, Resolver);
            ForceGcCleanups     = targetJob.ResolveValue(GcMode.ForceCharacteristic, Resolver);
            UnrollFactor        = targetJob.ResolveValue(RunMode.UnrollFactorCharacteristic, Resolver);
            Strategy            = targetJob.ResolveValue(RunMode.RunStrategyCharacteristic, Resolver);
            EvaluateOverhead    = targetJob.ResolveValue(AccuracyMode.EvaluateOverheadCharacteristic, Resolver);
            InvocationCount     = targetJob.ResolveValue(RunMode.InvocationCountCharacteristic, Resolver);
            MemoryRandomization = targetJob.ResolveValue(RunMode.MemoryRandomizationCharacteristic, Resolver);

            warmupStage = new EngineWarmupStage(this);
            pilotStage  = new EnginePilotStage(this);
            actualStage = new EngineActualStage(this);

            random = new Random(12345); // we are using constant seed to try to get repeatable results
        }