public static MemUsageStatistics Collect(Func<int, long> func, int iterations) { if (iterations < 1) { return null; } var slr = new SimpleLinearRegression(); var memUsg = func(0); slr.Next(memUsg, 0); var min = memUsg; var max = memUsg; for (int i = 1; i < iterations; ++i) { memUsg = func(i); slr.Next(memUsg, i); if (memUsg > max) { max = memUsg; } else if (memUsg < min) { min = memUsg; } } return new MemUsageStatistics( slr.GetParameters(), min, max ); }