public static IList <Point> GetFpsPointsTimeWindow(this ISession session, double startTime, double endTime, IFrametimeStatisticProviderOptions options, ERemoveOutlierMethod eRemoveOutlierMethod = ERemoveOutlierMethod.None, EFilterMode filterMode = EFilterMode.None) { IList <Point> fpsPoints = null; var frametimePoints = session.GetFrametimePointsTimeWindow(startTime, endTime, options, eRemoveOutlierMethod); var intervalFrametimePoints = session.GetFrametimePointsTimeWindow(0, endTime, options, eRemoveOutlierMethod); switch (filterMode) { case EFilterMode.TimeIntervalAverage: var timeIntervalAverageFilter = new IntervalTimeAverageFilter(options.IntervalAverageWindowTime); var timeIntervalAveragePoints = timeIntervalAverageFilter .ProcessSamples(intervalFrametimePoints.Select(pnt => pnt.Y).ToList(), startTime * 1000, endTime * 1000, session.Runs.SelectMany(r => r.CaptureData.TimeInSeconds).Last() * 1000); fpsPoints = timeIntervalAveragePoints.Select(pnt => new Point(pnt.X / 1000, 1000 / pnt.Y)).ToList(); break; default: fpsPoints = frametimePoints.Select(pnt => new Point(pnt.X, 1000 / pnt.Y)).ToList(); break; } return(fpsPoints); }
public FrametimePlotBuilder(IFrametimeStatisticProviderOptions options, IStatisticProvider frametimeStatisticProvider) : base(options, frametimeStatisticProvider) { }
public PlotBuilder(IFrametimeStatisticProviderOptions options, IStatisticProvider frametimeStatisticProvider) { _frametimeStatisticProviderOptions = options; _frametimesStatisticProvider = frametimeStatisticProvider; }
public static IList <Point> GetFrametimePointsTimeWindow(this ISession session, double startTime, double endTime, IFrametimeStatisticProviderOptions options, ERemoveOutlierMethod eRemoveOutlierMethod = ERemoveOutlierMethod.None) { IList <Point> frametimesPointsWindow = new List <Point>(); var frametimeStatisticProvider = new FrametimeStatisticProvider(options); var frametimes = frametimeStatisticProvider?.GetOutlierAdjustedSequence(session.Runs.SelectMany(r => r.CaptureData.MsBetweenPresents).ToArray(), eRemoveOutlierMethod); var frameStarts = session.Runs.SelectMany(r => r.CaptureData.TimeInSeconds).ToArray(); if (frametimes.Any() && frameStarts.Any()) { for (int i = 0; i < frametimes.Count(); i++) { if (frameStarts[i] >= startTime && frameStarts[i] <= endTime) { frametimesPointsWindow.Add(new Point(frameStarts[i], frametimes[i])); } } } return(frametimesPointsWindow); }
public FrametimeStatisticProvider(IFrametimeStatisticProviderOptions options) { _options = options; }
public static IList <Point> GetFpsPointTimeWindow(this ISession session, double startTime, double endTime, IFrametimeStatisticProviderOptions options, ERemoveOutlierMethod eRemoveOutlierMethod = ERemoveOutlierMethod.None) { return(session.GetFrametimePointsTimeWindow(startTime, endTime, options, eRemoveOutlierMethod).Select(pnt => new Point(pnt.X, 1000 / pnt.Y)).ToList()); }