利用Unity全新的高性能多线程数据导向技术堆栈(DOTS),充分利用当今的多核处理器。您的游戏运行速度更快,您的代码更易于在其他项目中阅读和重用。

重建Unity的核心

我们正在使用高性能多线程数据导向技术堆栈重建Unity的核心基础。DOTS使您的游戏可以充分利用最新的多核处理器,而不会遇到繁重的编程问题。DOTS包括以下功能:

  • 用于高效运行多线程代码的C#作业系统
  • 用于编写高性能代码的实体组件系统(ECS)
  • Burst Compiler用于生成高度优化的本机代码。

这些DOTS功能为程序员提供了方便的沙箱,可以编写具有巨大性能提升的多线程代码。DOTS目前在预览中可用。

DOTS的多线程系统使您能够创建在各种硬件上运行的游戏,通过更多元素和更复杂的模拟构建更丰富的游戏世界,甚至优化玩家移动设备上的热控制和电池寿命。通过从面向对象的设计转向面向数据的设计,您可以更轻松地重用代码,并让其他人理解和处理代码。

C#作业系统

新的C#作业系统利用了当今计算机中的多核。它旨在将此方法打开到C#用户脚本,并允许用户编写安全,快速,有效的代码,同时防止多线程的一些陷阱,如竞争条件。

利用多个核心

C#作业系统公开了Native C ++作业系统,允许C#脚本与Unity内部组件一起工作。

安全的环境

提供对多线程的一些陷阱的保护,例如竞争条件。

实体组件系统(ECS)
更好的游戏设计方法

ECS是一种编写代码的方式,专注于您正在解决的实际问题:组成游戏的数据和行为。

除了出于设计原因更好地接近游戏编程之外,使用ECS使您处于利用Unity的C#作业系统和Burst Compiler的理想位置,让您充分利用当今的多核处理器。

使用ECS,我们正在从面向对象转向数据导向设计,这意味着重用代码更容易,并且更容易让其他人掌握并做出贡献。

突发编译器
优化的代码

新的基于LLVM的后端编译器技术可以获取C#作业并生成高度优化的机器代码。

每个平台都是最好的

针对您正在编译的平台的特定功能进行了优化。

减少手工编码

在多个平台上获得手动调整的汇编程序代码的许多优点,而无需付出艰苦的努力。

DOTS默认情况下的性能的更多相关文章

  1. 使用QFileInfo类获取文件信息(在NTFS文件系统上,出于性能考虑,文件的所有权和权限检查在默认情况下是被禁用的,通过qt_ntfs_permission_lookup开启和操作。absolutePath()必须查询文件系统。而path()函数,可以直接作用于文件名本身,所以,path() 函数的运行会更快)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Amnes1a/article/details/65444966QFileInfo类为我们提供了系统无 ...

  2. Sql Server优化之索引提示----我们为什么需要查询提示,Sql Server默认情况下优化策略选择的不足

    环境: Sql Server2012 SP3企业版,Windows Server2008 标准版 问题由来: 最近在做DB优化的时候,发现一个存储过程有非常严重的性能问题, 由于整个SP整体逻辑是一个 ...

  3. Linux的虚拟内存管理-如何分配和释放内存,以提高服务器在高并发情况下的性能,从而降低了系统的负载

    Linux的虚拟内存管理有几个关键概念: Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全 ...

  4. 使用QFileInfo类获取文件信息(文件的所有权和权限检查在默认情况下是被禁用的。要使能这个功能 extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;)

    QFileInfo类为我们提供了系统无关的文件信息,包括文件的名字和在文件系统中位置,文件的访问权限,是否是目录或符合链接,等等.并且,通过这个类,可以修改文件的大小和最后修改.读取时间.同时,QFi ...

  5. UIView的clipsToBounds属性,layoutSubViews及触摸事件传递(默认情况下)总结

    一.UIView的clipsToBounds属性 * 默认情况下,超出父控件尺寸范围的子控件还是可见的 * 如果设置父控件的clipsToBounds=YES,就会裁剪掉超出父控件尺寸范围内的子控件, ...

  6. jquery Tab默认情况下自动切换

    <!DOCTYPE html><html lang="zh-CN"><head><meta http-equiv="Conten ...

  7. 默认情况下,不使用of子句表示在select所有的数据表中加锁(转)

    Select …forupdate语句是我们经常使用手工加锁语句.通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作.同时,在多版本一致读机制的支持下,select语句也不 ...

  8. target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件

    target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件

  9. [VS] - "包含了重复的“Content”项。.NET SDK 默认情况下包括你项目中的“Content”项。

    copy to :http://www.cnblogs.com/jinzesudawei/p/7376916.html VS 2017 升级至  VS 2017 v15.3 后,.Net Core 1 ...

随机推荐

  1. JAVA遇见HTML——JSP篇(1、JAVA WEB简介)

    比如淘宝.新浪.搜狐.网易就是Web应用程序

  2. 从客户端中检测到有潜在危险的 request.form值

    这里只说ASP.NET MVC的解决方法,ASP.NET已经不碰了. 给控制器加上[ValidateInput(false)]特性即可忽略含有HTML标记的内容. [HttpPost] [Valida ...

  3. django安装好之后,django-admin仍然不能使用的问题

    我使用的是python3,python3不能找到django的正确位置.需要下面这样才能正确建立mysite python3 /usr/lib/python2./site-packages/djang ...

  4. IAR添加debug和release选项

    在IAR的Workspace窗口顶部的下拉菜单中有两个选项,Debug和Release. 名字和数量可以在菜单栏的Project-->Edit Configuration中增删修改 每个选项都对 ...

  5. 扫描QPS控制——celery任务分多队列运行

    发包QPS控制,有两个难点. 1. redis交互流量的限制. 假设每分钟有1000条流量任务生成,每条跑20个插件,每个插件发5个数据包,每分钟约发十万请求. 那么在发包处做QPS会遇到一个问题,如 ...

  6. [2019HDU多校第三场][HDU 6603][A. Azshara's deep sea]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6603 题目大意:给出一个凸包,凸包内有若干个圆,要求画尽可能多的对角线使得他们两两不在凸包内相交且不与 ...

  7. BZOJ 4129 Haruna’s Breakfast ( 树上带修莫队 )

    题面 求树上某路径上最小的没出现过的权值,有单点修改 添加链接描述 分析 树上带修莫队板题,问题是怎么求最小的没出现过的权值. 因为只有nnn个点,所以没出现过的最小值一定在[0,n][0,n][0, ...

  8. P4148 简单题 k-d tree

    思路:\(k-d\ tree\) 提交:2次 错因:整棵树重构时的严重错误:没有维护父子关系(之前写的是假重构所以没有维护父子关系) 题解: 遇到一个新的点就插进去,如果之前出现过就把权值加上. 代码 ...

  9. 004——转载C#禁止改变窗体大小

    原文链接:http://www.cnblogs.com/shaozhuyong/p/5545005.html 1.先把MaximizeBox和MinimumBox设置为false,这时你发现最大最小化 ...

  10. [git]本地分支关联远程仓库

    远程仓库中分支存在 方法一:(已经创建了本地分支) git branch --set-upstream-to=origin/remote_branch your_branch //等同于 git br ...