关于Burst,看下官方介绍:
Burst is a compiler that you can use with Unity's job system to create code that enhances and improves your application's performance.
It translates your code from IL/.NET bytecode to optimized native CPU code that uses the LLVM compiler.
可参考文档:https://docs.unity3d.com/Packages/com.unity.burst@1.8/manual/index.html
测试代码如下:
using System.Collections; using System.Collections.Generic; using Unity.Burst; using Unity.Collections; using Unity.Jobs; using UnityEngine; public class TestBurst : MonoBehaviour { void TestCount() { int sum = 0; for (int i = 0; i < 999999; i++) { sum += i; } } // Update is called once per frame void Update() { // 1. 耗时23ms /* for (int i = 0; i < 10; i++) TestCount(); */ // 2. 耗时0.03ms /* NativeArray<JobHandle> jobHandles = new NativeArray<JobHandle>(10, Allocator.Temp); for (int i = 0; i < 10; i++) { TestJob job = new TestJob(); JobHandle handle = job.Schedule(); jobHandles[i] = handle; } JobHandle.CompleteAll(jobHandles); jobHandles.Dispose(); */ // 3. 耗时0.009ms TestParalleJob jobs = new TestParalleJob(); JobHandle jobHandle = jobs.Schedule(10,32); jobHandle.Complete(); } } /* Burst is a compiler that you can use with Unity's job system to create code that enhances and improves your application's performance. It translates your code from IL/.NET bytecode to optimized native CPU code that uses the LLVM compiler. 文档可参考: https://docs.unity3d.com/Packages/com.unity.burst@1.8/manual/index.html */ [BurstCompile] public struct TestJob : IJob { public void Execute() { int sum = 0; for (int i = 0; i < 999999; i++) { sum += i; } } } [BurstCompile] public struct TestParalleJob : IJobParallelFor { public void Execute(int index) { int sum = 0; for (int i = 0; i < 999999; i++) { sum += i; } } }
profiler截图如下:
执行第一段代码
执行第二段代码
执行第三段代码
转载请注明出处:https://www.cnblogs.com/jietian331/p/17147659.html
标签:code,Burst,int,sum,Unity,测试,using From: https://www.cnblogs.com/jietian331/p/17147659.html