public static void CheckMemoryUse(BenchmarkRunner <ImageJob, JobProfiler> runner, int runMultiplier) { runner.ParallelRuns = runMultiplier; runner.ParallelThreads = parallelThreads; runner.SequentialRuns = runMultiplier * 8; runner.ThrowawayThreads = parallelThreads; runner.ThrowawayRuns = runMultiplier * 2; Console.Write("Running {0} warmup (t={1}), {2} parallel (t={3}), {4} sequential\n", runner.ThrowawayRuns * runner.ThrowawayThreads, runner.ThrowawayThreads, runner.ParallelRuns * runner.ParallelThreads, runner.ParallelThreads, runner.SequentialRuns); var results = runner.Benchmark(); Console.Write("Private bytes before: {0:F2}MB warm: {1:F2}MB after {2:F2}MB\n", results.PrivateBytesBefore / 1000000.0, results.PrivateBytesWarm / 1000000.0, results.PrivateBytesAfter / 1000000.0); Console.Write("Managed bytes before: {0:F2}MB warm: {1:F2}MB after {2:F2}MB\n", results.ManagedBytesBefore / 1000000.0, results.ManagedBytesWarm / 1000000.0, results.ManagedBytesAfter / 1000000.0); }