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 output; [ReadOnly] public NativeArray a; [ReadOnly] public NativeArray 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(Count, Allocator.Persistent); job.a = new NativeArray(Count, Allocator.Persistent); job.b = new NativeArray(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(); } } }