Singularity/Library/PackageCache/com.unity.burst@1.8.4/Tests/Runtime/UnityBenchShared/SumNumberJob.cs
2024-05-06 11:45:45 -07:00

57 lines
1.4 KiB
C#

using System;
using System.Runtime.CompilerServices;
using Unity.Collections;
using Unity.Jobs;
[assembly: InternalsVisibleTo("Burst.Benchmarks")]
namespace UnityBenchShared
{
internal struct SumNumbersTest : IJob, IDisposable
{
public const int Count = 10000000;
public NativeArray<float> output;
[ReadOnly]
public NativeArray<float> a;
[ReadOnly]
public NativeArray<float> b;
public void Execute()
{
for (int i = 0; i < Count; ++i)
{
output[i] = a[i] + b[i];
}
}
public struct Provider : IArgumentProvider
{
public object Value
{
get
{
var job = new SumNumbersTest();
job.output = new NativeArray<float>(Count, Allocator.Persistent);
job.a = new NativeArray<float>(Count, Allocator.Persistent);
job.b = new NativeArray<float>(Count, Allocator.Persistent);
for (int i = 0; i < Count; i++)
{
job.a[i] = i;
}
return job;
}
}
}
public void Dispose()
{
output.Dispose();
a.Dispose();
b.Dispose();
}
}
}