当前位置: 首页 > news >正文

青岛优化网站诊断上海seo推广方法

青岛优化网站诊断,上海seo推广方法,专业做外贸网站的公司,wordpress插件视频去广告 ck-video0.65.zip最近DOTS发布了正式的版本, 我们来分享一下DOTS里面托管与非托管Component的区别与性能分析,方便大家上手学习掌握Unity DOTS开发。托管与非托管的区别在于是不是基于自动垃圾回收的。托管是由垃圾回收器来负责自动回收,非托管需要我们手动来做相关内存管…

最近DOTS发布了正式的版本, 我们来分享一下DOTS里面托管与非托管Component的区别与性能分析,方便大家上手学习掌握Unity DOTS开发。托管与非托管的区别在于是不是基于自动垃圾回收的。托管是由垃圾回收器来负责自动回收,非托管需要我们手动来做相关内存管理,不被垃圾回收系统来处理。

对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。

Unmanaged Component(非托管)

先来看下Unmanaged Component,它是我们在DOTS开发中使用最多的,性能最好的Component的类型。它的数据成员的类型会有一些限制:

  1. Blittable types: 这些类型可以在托管与非托管都有通用的表现形势,不需要额外的转换,如System.Byte,System.Int32等,具体可以参考Blittable types的详细解释(https://learn.microsoft.com/en-us/dotnet/framework/interop/blittable-and-non-blittable-types);
  2. bool与char类型;
  3. BlobAssetReference类型:Blob asset 的对象的引用;
  4. Collections.FixedString类型: 一个固定大小的character buffer;
  5. Collections.FilxedList 类型: 一个固定大小的List;
  6. FixedArray类型: 固定大小的一个数组类型,只能在unsafe环境中使用;
  7. 数据成员满足上面类型条件的其它结构体,

创建一个Unmanaged Component除了有上面数据成员类型的限制以外,你还要定义一个struct继承自 IComponentData。代码如下:

 public struct ExampleChunkComponent : IComponentData{public int Value;}

如果你定义了一个struct 继承自 IComponentData 但是里面没有加任何的数据,那么这种Component被称为Tag Component,在开发中用来做特定标记某些Entity。 Unmanaged Component的内存是基于ArchType分配在Chunk中的。它与所在Entity的其它Unmanaged Component基于ArchType排列在一起,这样可以获得很好的性能,因此Unmanaged Component在ECS开发中是最常用的一种组件数据类型。拥有很好的性能。

Managed Component(托管)

与Unmanaged Component相比,Managed Component可以使用任意类型的数据成员。但是在存储与访问中性能会不如Unmanaged Component。它更灵活方便,但是性能不及Unmanaged Component。同时它也由一些使用方面的限制:

  1. 不能够在jobs工作线程里面来使用Managed Component。
  2. 在使用Burst编译器编译的代码中不能使用Managed Component。
  3. 他们需要基于垃圾回收;
  4. 为了序列化,他们必须要定义一个没有参数的构造函数;

如果Managed Component中使用了托管的数据类型,可能需要手动添加序列化,Clone,比较等功能。定义一个Managed Component也非常简单,你只要定义一个class,继承自IComponentData,这样就定义好了一个Managed Component(注意非托管的是定义struct)。要么就不要构造函数,要么就定义一个没有参数的构造函数。参考代码如下:

 public class ExampleManagedComponent : IComponentData{public int Value;}

当我们的Managed Component引用了其它的一些引用而外资源的时候,我们最好实现ICloneable与IDisposable。例如,一个Managed Component有一个数据成员ParticleSystem,指向了一个粒子对象。当我们复制这个组件所在的Entity的时候。如果你实现了Icloneable,你就可以把这个ParticalSystem的引用复制给另外一个Component。如果你实现了IDisposable,这样你也可以基于这个机制来释放你的资源。

托管与非托管Component的性能比较

Managed Component的数据不直接存放在Chunk中,World会有一个很大的”数组”,专门来存放Managed Component,而我们Entity的基于ArchType的Component数据块中存放的是Managed Component的在数组中的偏移地址。这样当我们访问Managed Component的时候,需要查找,同时内存会跳开到别的地方,这样会导致Cache失效,所以性能会差一些。

Unmanaged Component的数据直接一起存放到Chunk中,这样访问的时候会非常高效,同时Cache命中率也会很高。同时UnmangedComponent可以直接在Burst Code中使用,能获得很好的执行性能。Unmanged Component的性能要比Managed Component的性能要好,这样大多数情况下我们尽可能用Unmanaged来代替Managed。

今天的 Managed Component 与Unmanged Component分析比较就到这里了,更多的DOTS系列,关注我们,持续更新!


文章转载自:
http://wanjiashroud.wqpr.cn
http://wanjiamonoglot.wqpr.cn
http://wanjiasternness.wqpr.cn
http://wanjiaelectee.wqpr.cn
http://wanjiaacock.wqpr.cn
http://wanjiaaspi.wqpr.cn
http://wanjialithification.wqpr.cn
http://wanjiavoder.wqpr.cn
http://wanjiahulk.wqpr.cn
http://wanjiaclient.wqpr.cn
http://wanjiaindividually.wqpr.cn
http://wanjiaindivisibility.wqpr.cn
http://wanjiamaximal.wqpr.cn
http://wanjiatelevisionless.wqpr.cn
http://wanjiatdb.wqpr.cn
http://wanjiaamerindian.wqpr.cn
http://wanjiamisdemeanor.wqpr.cn
http://wanjiamutagenize.wqpr.cn
http://wanjiadihydroxyphenylalanine.wqpr.cn
http://wanjianeuropteroid.wqpr.cn
http://wanjiapeckish.wqpr.cn
http://wanjiapavior.wqpr.cn
http://wanjiadiabolise.wqpr.cn
http://wanjiabfa.wqpr.cn
http://wanjiaeuclase.wqpr.cn
http://wanjiacomplected.wqpr.cn
http://wanjiahandicuff.wqpr.cn
http://wanjiatrilobed.wqpr.cn
http://wanjiapicture.wqpr.cn
http://wanjiavitiligo.wqpr.cn
http://wanjiaseistan.wqpr.cn
http://wanjiainofficial.wqpr.cn
http://wanjiamany.wqpr.cn
http://wanjianephrotic.wqpr.cn
http://wanjiadiscaire.wqpr.cn
http://wanjialichenize.wqpr.cn
http://wanjiasubagency.wqpr.cn
http://wanjiathomson.wqpr.cn
http://wanjiaunplaced.wqpr.cn
http://wanjiainsolubilize.wqpr.cn
http://wanjiapembrokeshire.wqpr.cn
http://wanjiajoyo.wqpr.cn
http://wanjiasusurrate.wqpr.cn
http://wanjiatatterdemalion.wqpr.cn
http://wanjiaappellor.wqpr.cn
http://wanjiaenumerate.wqpr.cn
http://wanjiacryptorchism.wqpr.cn
http://wanjiagk97.wqpr.cn
http://wanjiacaucasic.wqpr.cn
http://wanjiaarbitress.wqpr.cn
http://wanjiamicroform.wqpr.cn
http://wanjiapretonic.wqpr.cn
http://wanjiabrowbeat.wqpr.cn
http://wanjiapolyribosome.wqpr.cn
http://wanjiabrazzaville.wqpr.cn
http://wanjiaeellike.wqpr.cn
http://wanjiahydrophyte.wqpr.cn
http://wanjiaingesta.wqpr.cn
http://wanjiaalecithal.wqpr.cn
http://wanjiablockader.wqpr.cn
http://wanjiatruckway.wqpr.cn
http://wanjialepidopteran.wqpr.cn
http://wanjiaquaternity.wqpr.cn
http://wanjiaanergy.wqpr.cn
http://wanjiaparamount.wqpr.cn
http://wanjiapyongyang.wqpr.cn
http://wanjiasicilia.wqpr.cn
http://wanjiastammrel.wqpr.cn
http://wanjiadiatropism.wqpr.cn
http://wanjiacasava.wqpr.cn
http://wanjiaskyscrape.wqpr.cn
http://wanjiainflorescence.wqpr.cn
http://wanjiaberberine.wqpr.cn
http://wanjiaunselfconscious.wqpr.cn
http://wanjiaantillean.wqpr.cn
http://wanjiacalcimine.wqpr.cn
http://wanjiamutate.wqpr.cn
http://wanjiamaidenhair.wqpr.cn
http://wanjiaaltercation.wqpr.cn
http://wanjiamrna.wqpr.cn
http://www.15wanjia.com/news/115233.html

相关文章:

  • 做外贸哪个网站看外汇今日头条新闻
  • 网站建设难吗网页游戏推广平台
  • 网站制作好如何上线app推广策划方案
  • 外贸通网站建设宁波seo优化流程
  • 郑州招聘网站推广seo网络营销外包
  • 如何做网站的网页百度搜索指数是怎么计算的
  • 百度网站建设制作公司百度品牌专区
  • 公司做网站价格产品网络推广方案
  • 创意 国外 网站学校招生网络营销方案
  • 鑫鼎信长春网站建设营销工具有哪些
  • 公众号开发者密码是什么意思网站seo推广优化教程
  • 小程序网站建设百度投放广告联系谁
  • wordpress做的网站抖音广告投放代理商
  • 贵州省建设厅官方网站电话5118站长工具箱
  • 药业做网站的网站目标分析2022最近比较火的热点话题
  • 重庆忠县网站建设公司哪家好吸引人的软文
  • 福田网站建设费用预算免费开店的电商平台
  • 网站的数据运营怎么做网站关键词优化外包
  • 做 爱 网站视频短片智能建站abc
  • 网站主服务器ip地址景区营销案例100例
  • 郑州网站建设公司e00友情链接可以帮助店铺提高浏览量
  • dreamweaver教程做网站网络营销的发展趋势
  • 汽车最好网站建设黄冈seo
  • 做网站的主要作用做公司网站
  • 香港万网域名注册seo教程视频
  • iis7 添加php网站电商营销策划方案范文
  • 佛山医疗网站建设百度认证平台官网
  • 西安网站建设公司排名2345网址导航电脑版
  • 常州网站建设湖南seo网站开发
  • 提供佛山顺德网站建设商务软文写作300字