Files
flowframes/Code/MiscUtils/Benchmarker.cs

28 lines
887 B
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace Flowframes.MiscUtils
{
class Benchmarker
{
// Benchmark a method with return type (via Delegate/Func)
public static object BenchmarkMethod(string methodName, Delegate method, params object[] args)
{
NmkdStopwatch sw = new NmkdStopwatch();
var returnVal = method.DynamicInvoke(args);
Logger.Log($"Ran {methodName} in {sw.GetElapsedStr()}", true);
return returnVal;
}
// Benchmark a void method (via Action)
public static void BenchmarkMethod(string methodName, Action method, params object[] args)
{
NmkdStopwatch sw = new NmkdStopwatch();
method.DynamicInvoke(args);
Logger.Log($"Ran {methodName} in {sw.GetElapsedStr()}", true);
}
}
}