Unity DOTS学习 前置知识(一)

news2024/12/23 5:42:31

DOTS是什么

Data-Oriented Technology Stack(面向数据的技术栈)

Unity 使用的5个核心包:

  1. The C# job system
    提供快速安全的多线程操作
  2. The Burst compiler
    优化C#代码的编译器,能够编译生成比mono或者L2CPP更快的代码。可以编译Unity中的任何代码
  3. Unity Mathematics
    这是一套可以在JobSystem中使用的数学库,他提供的功能在Burst编译时有特别优化。
  4. Unity Collections
    提供常见的数据类型,如list、hashmap等,内存分配属于非C#托管类型,可以在JobSystem中使用,支持安全检查,并且被Burst编译优化。
  5. Entities ( Entity-Component System )
    GameObject的轻量替代品, 主要是数据,没有逻辑

游戏功能相关的额外包

  1. Entities.Graphics ( Hybird Renderer )
    这是URP和HDRP的Entity渲染解决方案。是优化CPU而非GPU。
  2. Netcode
    DOTS网络解决方案,具有多人连线功能、客户端预测功能等。
  3. Physics
    物理解决方案
  4. Animation(WIP)
    DOTS支持
  5. Audio(WIP)
    DOTS支持

Data-Oriented Design(DOD)面向数据设计

  • 面向对象设计→面向数据设计
  • DOD本质:面向内存/缓存友好的设计
    • 需要考虑需要什么数据,以及如何在内存中更好的构造数据,以便CPU更有效的访问数据。

由于CPU的三级缓存设计结构,如果在某一级缓存没有命中时,向下一级缓存获取时花费的时间开销会是几倍到几十倍的时间开销
在这里插入图片描述

缓存Cache的3C与3R

3C 3种产生miss 的情况

  • Compulsory misses:首次读取数据时,不可避免的Miss
  • Capacity misses:缓存空间不足时,连续使用期间访问数据过多的话,无法保存所有活动的数据
  • Conflict misses:发生访问冲突时,由于数据映射到相同的缓存行,导致缓存的抖动(实际数据访问不连续)

3R 3种优化方案

  • Rearrange:重新排列(代码、数据)︰更改布局以增加数据空间的局部性
  • Reduce:减少(大小、缓存行读取)︰更小更智能的格式、压缩
  • Reuse:重用(Cache lines):增加数据的时间(和空间)的局部性

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决传统难题,WMS系统实现信息数据实时追踪

随着社会经济的发展,传统仓库的存储和做工难以适应当下市场经济的需求。仓库需要进行转型升级,从而适应当下的环境。在仓库的转型升级过程当中,WMS系统是不可或缺的一部分内容。 而WMS系统的应用会从多方面支持仓库的转型升级,其带…

uniapp之最新获取用户昵称以及头像

前言 在uniapp登录时候最开始想的就是手机号登录之后,就获取用户的昵称以及头像,存储起来,登录的时候直接显示在我的页面,最开始使用的是 uniapp官网自带的uni.getUserProfile的方法,就可以获取用户的头像跟昵称&…

Prometheus Operator与kube-prometheus之二-如何监控1.23+ kubeadm集群

简介 系列文章: 标签 - Prometheus - 东风微鸣技术博客 (ewhisper.cn)Prometheus Operator 的上一篇: Prometheus Operator 与 kube-prometheus 之一 - 简介 - 东风微鸣技术博客 (ewhisper.cn) kube-prometheus-stack捆绑了监控Kubernetes 集群所需的Prometheus Operator、Ex…

Web(二)html5基础-表格基本结构

第1关_网页表格的基本概念 第2关_创建简单的表格 本关任务:创建一个两行两列的表格。 相关知识:为了完成本关任务,你需要掌握:1.表格的结构及对应的标签,2.表格标签的属性。 表格的结构及对应的标签。一个基本的表格是…

Netty系列(二):Netty拆包/沾包问题的解决方案

上一篇说到Netty系列(一):Springboot整合Netty,自定义协议实现,本文聊一些拆包/沾包问题。 拆包/沾包问题 TCP是面向字节流的协议,在发送方发送的若干包数据到接收方接收时,这些数据包可能会被…

Linux笔记

一。基础思想 一切皆文件。 两条权限原则: 权限分组原则权限最小原则 su是切换用户,而sudo则是用root权限执行某操作( 普通用户sudo安全) Linux目录 系统只存在一颗文件树、从/开始,所有的文件都挂载在这个节点上。…

JaCoCo增量覆盖率的基本实现原理

什么是增量覆盖率 如图所示,在master分支提交了HelloController,然后从master拉了个新分支test;提交了第1次代码,增加了WorldController;提交了第2次代码,增加了DonController。增量的获取方式有两种&#…

报表工具使用教程-FineReport决策报表导出Plus

前言 通过决策报表导出插件,用户可以将单张决策报表导出为 Excel ,PDF,Word 格式文件。 那么用户如何将决策报表导出为 PPT 或 Image 格式文件呢?如何将多张决策报表合并导出至一个文件呢? 1.实现思路 用户通过安装…

静态时序分析简明教程(七)]端口延迟

端口延迟一、写在前面1.1 快速导航链接二、端口延迟2.1 输入有效2.2 输出有效2.3 set_input_delay2.3.1 -clock clock_name2.3.2 -clock_fall2.3.3 -level_sensitive2.3.4 -rise/fall2.3.5 min/max2.3.6 -add_delay2.3.7 时钟延迟2.4 set_output_delay三、总结一、写在前面 一…

点击化学FAM荧光素:6-FAM-alkyne,FAM alkyne 6-isomer,6-炔基-羧基荧光素

【中文名称】6-炔基-羧基荧光素 【英文名称】 FAM alkyne,6-isomer,6-FAM-alkyne 【CAS】478801-49-9 【分子式】C24H15NO6 【分子量】413.39 【纯度标准】95% 【包装规格】25mg,50mg,100mg 【是否接受定制】可进行定制,定制时间周…

Kubernetes安装可视化界面

安装可视化界面编写配置文件安装kubernetes-dashboard创建访问账号访问可视化界面dashboard是kubernetes官方提供的可视化界面。 https://github.com/kubernetes/dashboard编写配置文件 创建配置文件存放目录并切换到其中: mkdir /usr/local/kubernetes-dashboard…

java面试强基(10)

Exception 和 Error 有什么区别? 在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类。Throwable 类有两个重要的子类: Exception :程序本身可以处理的异常,可以通过 catch 来进行捕获。Exception 又可以分为 Checke…

Twitter网红账号营销,一定不能做的事

做社媒运营,我们都会创建一个官方账号与粉丝进行互动沟通,及时通知我们的新活动、产品,也是我们与粉丝建立联系的一个渠道方法。 推特群推王提示,虽然有这么多的好处,但是,也是有很多事项需要注意的&#…

服务器抓包简介

1、微服务服务器上抓包 2、在nginx服务器上抓包 1、服务器安装抓包软件 yum install -y tcpdump 2、服务器抓包命令 tcpdump -i any -s 0 -vvv -w /opt/qqgh.cap port 8080(本服务器该服务的实际ip地址) tcpdump -i eth0 host 10.30.224.170 -w result.…

14.函数的使用

函数的概念 函数是c语言的功能单位,实现一个功能可以封装成一个函数来实现。 定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值。 函数的分类 1.从定义角度分类(即函数是谁实现的) 库函数(c库实现的…

Fedora怎么设置主菜单快捷键? Fedora快捷键的设置方法

Fedora主菜单可以设置打开快捷键,该怎么设置呢?下面我们就来看看Fedora快捷键的操作方法。 同时按【ALTF2】,输入gnome-terminal,打开终端。 单击右上角的主菜单按钮。 单击【配置文件首选项】。 单击【快捷键】。 单击【显示主菜…

使用DIV+CSS进行网页布局设计【HTML节日介绍网站——二十四节气】

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

【linux】进程概念

文章目录前言进程状态一、普遍的操作系统1、运行状态2、阻塞状态小结(重要知识点)3、新建/就绪状态4、挂起状态小结二、linux操作系统Linux内核源代码1、运行状态(R)2、(浅度)睡眠状态(S&#x…

HTML CSS JS 网页设计作业「我的家乡吉林」

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

HTML小游戏12 —— 汽车赛道飙车游戏(附完整源码)

💂 网站推荐:【神级源码资源网】【摸鱼小游戏】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬 免费且实用的计…