Files
flowframes/Code/MiscUtils/Benchmarker.cs
N00MKRAD f23aa9eabe cleanup
2021-05-13 23:19:15 +02:00

25 lines
826 B
C#

using System;
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);
}
}
}