Files
2026-09-21 12:15:57 +03:00

41 lines
1.1 KiB
C#

using System;
using System.Collections;
using Unity.PerformanceTesting;
namespace LitMotion.Tests.Benchmark
{
public static class BenchmarkHelper
{
public static void MeasureStartUp(Action action, Action cleanUp)
{
Measure.Method(action)
.WarmupCount(10)
.IterationsPerMeasurement(10000)
.MeasurementCount(10)
.CleanUp(() =>
{
cleanUp();
})
.Run();
}
public static IEnumerator MeasureUpdate(Action setUp)
{
setUp();
return Measure.Frames()
.WarmupCount(5)
.MeasurementCount(200)
.Run();
}
public static void MeasureGC(Action action)
{
GC.Collect();
var prev = GC.GetTotalMemory(true);
action();
var current = GC.GetTotalMemory(true);
Measure.Custom(new SampleGroup("GC.Alloc", SampleUnit.Byte), current - prev);
}
}
}