Unity2013.1.19_DOTS_Burst compiler

Unity2013.1.19_DOTS_Burst compiler

DOTS是一种新产品,现在尚在起步阶段。由于它处于持续发展中,随着我们努力使其达到最佳状态,您将看到API会不断演变和日趋成熟。

DOTS包含以下元素:

  1. 实体组件系统(ECS) - 提供使用面向数据的方法进行编码的框架。它通过Entities软件包进行分发,您可以通过Package Manager来添加编辑器。

  2. C#作业系统 - 提供一种生成多线程代码的简单方法。它通过Jobs软件包进行分发。

  3. Burst编译器 - 可生成快速、优化的本机代码。它通过Burst软件包进行分发,可通过Package Manager在编辑器中使用。

  4. 本机容器 - 属于ECS数据结构,可提供对内存的控制。

继续跟进DOTS的第三个部分Burst compiler。官方是正道。

Unity - Manual: Burst (unity3d.com)

Burst compiler简介

Burst设计Burst compiler是和JobSystem一起工作的。

在你的代码中使用Burst compiler,先用  [BurstCompile]属性封装一个 Job struct 。

再添加[BurstCompile] 到你想要Burst编译的类型和静态方法中。

Burst compiles your code just-in-time (JIT) while in Play mode in the Editor, and ahead-of-time (AOT) when your application runs in a Player. For more information on compilation, see Burst compilation

using Unity.Burst;
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;public class MyBurst2Behavior : MonoBehaviour
{void Start(){var input = new NativeArray<float>(10, Allocator.Persistent);var output = new NativeArray<float>(1, Allocator.Persistent);for (int i = 0; i < input.Length; i++)input[i] = 1.0f * i;var job = new MyJob{Input = input,Output = output};job.Schedule().Complete();Debug.Log("The result of the sum is: " + output[0]);input.Dispose();output.Dispose();}// Using BurstCompile to compile a Job with Burst[BurstCompile]private struct MyJob : IJob{[ReadOnly]public NativeArray<float> Input;[WriteOnly]public NativeArray<float> Output;public void Execute(){float result = 0.0f;for (int i = 0; i < Input.Length; i++){result += Input[i];}Output[0] = result;}}
}

参考文档:

官方:

About Burst | Burst | 1.8.12 (unity3d.com)

Unity 之Burst Compile底层原理 - 知乎 (zhihu.com)

Unity Live Help

什么是DOTS?为什么说DOTS非常重要? - Unity Learn

Unity-Technologies/ECS-Network-Racing-Sample: ECS multiplayer racing sample to showcase using Unity Entities and netcode with best practices (github.com)

ECS系列教程:

UnityECS_嵩小帽子啊的博客-CSDN博客[Unity ECS入门]8.System执行顺序-ECS入门-笨木头与游戏开发 (benmutou.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512281.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

selenuim【1】$x(‘xpath’)、WebDriverWait()、try/assert

文章目录 1、执行driver webdriver.Chrome()后很久才打开浏览器2、浏览器多元素定位 $x(‘xpath语法’)3、打开浏览器driver.get("网址")执行了很久才开始定位元素&#xff1a;等待&#xff08;1&#xff09;driver.set_page_load_timeout(t)&#xff08;2&#xff…

亚信安慧AntDB:编织数据丝路,缔造创新篇章

亚信安慧AntDB作为一款具备国产化升级改造经验的数据库系统&#xff0c;在15年的平稳运行中积累了丰富经验。通过持续的创新和技术进步&#xff0c;AntDB不断优化性能和功能&#xff0c;满足用户的需求&#xff0c;与国际先进数据库系统保持竞争力。 AntDB秉承着与用户和行业保…

2024年最新《国际预警期刊》正式更新!

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、国际期刊预警名单的变化&#xff1f;二、课程案例展示&#xff08;篇幅有限仅展示部分&#xff09;1.【热图系列】2.【九象限图系列】3.【富集分析系列】4.【机…

c# 调用ip2region组件 根据ip地址进行定位归属地运营商

需求描述&#xff1a;当项目中需要将IP转换成对应的归属地以及运营商&#xff0c;那么通过ip2region组件即可完美实现。 p2region本身支持net4.5以上&#xff0c;还有个ip2region.net组件&#xff0c;它要求net6及以上。所以&#xff0c;根据自己项目的需求即可选择其中一种方…

Domain Adaptation Vs. Prompt-Tuning:能否用域自适应解决大模型提示学习问题?

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 作者简介 李江梦&#xff0c;中国科学院软件研究所天基综合信息系统全国重点实验室助理研究员 论文简介 今天介绍的是被机器学习领域顶级学术会议ICLR 2024接收的论文&#xff1a;BayesPrompt: Prompting Large…

006-CSS-常见问题汇总

常见问题汇总 1、伪元素与伪类2、偏门但好用的样式3、文字溢出三个点展示4、空白折叠问题5、文字的垂直居中6、 Vue项目中 在父组件中修改子组件样式7、BFC 概念7.1、兄弟元素外边距合并7.2、父子元素外边距塌陷 8、box-sizing8.1、box-sizing: border-box8.2、box-sizing: con…

机器人顶刊IJRR近期国人新作(2024)

一、IJRR简介 The International Journal of Robotics Research&#xff08;IJRR&#xff09;是机器人领域的高水平学术期刊&#xff0c;专注于发布关于机器人技术和相关领域的最新研究成果。IJRR创刊于1982年&#xff0c;是该领域的第一本学术刊物&#xff0c;2022-2023最新影…

el-dialog封装组件

父页面 <template><div><el-button type"primary" click"visible true">展示弹窗</el-button><!-- 弹窗组件 --><PlayVideo v-if"visible" :visible.syncvisible /></div> </template><sc…

[Redis]——Spring整合Redis(SpringDataRedis)

⭐准备工作&#xff1a; 确保Redis服务已启动idea开发环境 ⭐Redis整合步骤&#xff1a; 1.pom文件引入依赖 2.yml文件配置连接信息 3.修改Redis序列化方式 4.注入RedisTemplate 使用 小知识&#xff1a; Spring整合的Redis可以将Object对象自动序列化成字符串&#xff0…

探索API测试的奇妙世界:总结与思考!

本文主要是关于 API 测试的方法论探讨。 什么是 API 测试&#xff1f; API 测试是一种软件测试&#xff0c;涉及验证和确认应用程序接口 ( API ) 及其与其他服务组件的交互。测试重点关注软件架构的业务逻辑层&#xff0c;确保API按预期运行、数据准确交换、服务在各种条件下…

在 Centos 7 上编译 OpenJDK 23 及错误处理

在 Centos 7 上编译 OpenJDK 23 目的 希望在 JDK 源码中添加自己的中文注释&#xff0c;方便对学习过程进行记录。 其中遇到的错误主要有BootJDK的版本问题和字符编码问题&#xff0c;没有去调查哪些版本是兼容的&#xff0c;本文主要处理字符编码问题。 操作环境 组件版本…

RS编码的FPGA实现

RS编码&#xff0c;即Reed-solomon codes&#xff0c;是一类纠错能力很强的特殊的非二进制BCH码&#xff08;BCH码是一种有限域中的线性分组码&#xff0c;具有纠正多个随机错误的能力&#xff09;。对于任选正整数S可构造一个相应的码长为nqS-1的 q进制BCH码&#xff0c;而q作…