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); }
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 }