首页 > 解决方案 > java中的ecs:如何享受缓存友好?

问题描述

ECS(entity component system)之所以像entitas in unity一样具有出色的性能,是因为相同类型的组件被放在同一个内存块中,这使得组件迭代快速高效。

然而,在java中我们无法管理对象内存位置,所以ecs似乎不如java语言中的c++有用。这是真的吗,或者实际上有一些方法可以在 java中实现缓存友好的 ecs ?

标签: javaentity-component-system

解决方案


在 Java 中,您还没有值类型对象(请参阅Project Valhalla)这意味着您不会在同一个块中创建对象数组,但这并不意味着您不能拥有具有性能的 Java 的 ECS与 C/C++ 的 ECS 相当。在这方面,我已经在 J​​ava 17 中启动了一个 ECS项目,该项目旨在展示与系统语言相似的性能,并展示看起来非常有前途的基准。


推荐阅读