public IterationData(IterationMode iterationMode, IterationStage iterationStage, int index, long invokeCount, int unrollFactor) { IterationMode = iterationMode; IterationStage = iterationStage; Index = index; InvokeCount = invokeCount; UnrollFactor = unrollFactor; }
/// <summary> /// Creates an instance of <see cref="Measurement"/> struct. /// </summary> /// <param name="launchIndex"></param> /// <param name="iterationMode"></param> /// <param name="iterationStage"></param> /// <param name="iterationIndex"></param> /// <param name="operations">The number of operations performed.</param> /// <param name="nanoseconds">The total number of nanoseconds it took to perform all operations.</param> public Measurement(int launchIndex, IterationMode iterationMode, IterationStage iterationStage, int iterationIndex, long operations, double nanoseconds) { Operations = operations; Nanoseconds = nanoseconds; LaunchIndex = launchIndex; IterationMode = iterationMode; IterationStage = iterationStage; IterationIndex = iterationIndex; }
/// <summary> /// Creates an instance of <see cref="Measurement"/> struct. /// </summary> /// <param name="launchIndex"></param> /// <param name="iterationMode"></param> /// <param name="iterationStage"></param> /// <param name="iterationIndex"></param> /// <param name="operations">The number of operations performed.</param> /// <param name="nanoseconds">The total number of nanoseconds it took to perform all operations.</param> /// <param name="encoding">encoding to display value.</param> public Measurement(int launchIndex, IterationMode iterationMode, IterationStage iterationStage, int iterationIndex, long operations, double nanoseconds, Encoding encoding = null) { Encoding = encoding; Operations = operations; Nanoseconds = nanoseconds; LaunchIndex = launchIndex; IterationMode = iterationMode; IterationStage = iterationStage; IterationIndex = iterationIndex; }
internal void IterationStart(IterationMode mode, IterationStage stage, long totalOperations) { switch (stage) { case IterationStage.Jitting when mode == IterationMode.Overhead: OverheadJittingStart(totalOperations); break; case IterationStage.Jitting when mode == IterationMode.Workload: WorkloadJittingStart(totalOperations); break; case IterationStage.Pilot when mode == IterationMode.Workload: WorkloadPilotStart(totalOperations); break; case IterationStage.Warmup when mode == IterationMode.Overhead: OverheadWarmupStart(totalOperations); break; case IterationStage.Warmup when mode == IterationMode.Workload: WorkloadWarmupStart(totalOperations); break; case IterationStage.Actual when mode == IterationMode.Overhead: OverheadActualStart(totalOperations); break; case IterationStage.Actual when mode == IterationMode.Workload: WorkloadActualStart(totalOperations); break; default: throw new ArgumentOutOfRangeException(nameof(stage), stage, null); } }
public static bool Is(this Measurement measurement, IterationMode mode, IterationStage stage) => measurement.IterationMode == mode && measurement.IterationStage == stage;