ECS:Sync points and structural changes
Posted 技术就像一条河流
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ECS:Sync points and structural changes相关的知识,希望对你有一定的参考价值。
结构性修改Structural changes:
任何导致entity的原型(archetype)变化,或者entity在chunk中的存储位置变化的修改,都叫做结构性修改。
以下操作皆为结构性修改:
创建或销毁entity
添加或移除component
修改shared component的值
同步点Sync points:
ECS中的同步点表示需要等待所有调度的jobs执行完毕的点,会导致卡顿或CPU利用不充分,所以要尽量避免同步点的产生。
结构性修改是触发同步点主要来源。
结构性修改不只是会导致同步点,还会导致之前对component的引用全部失效,包括DynamicBuffer<T>。
解决方案:
使用ECB来缓存structural changes的操作,然后一次执行,而不是贯穿在逻辑中的各种地方。
以上是关于ECS:Sync points and structural changes的主要内容,如果未能解决你的问题,请参考以下文章
Limit point, Accumulation point, and Condensation point of a set
如何在 MacOSX 上的 g++ 中使用 gcc 内置 __sync_bool_compare_and_swap?
linux无锁化编程--__sync_fetch_and_add系列原子操作函数
Gradle project sync failed. Please fix your project and try again