【问题标题】:ecs in java : how to enjoy cache Friendly?ecs in java : 如何享受缓存友好?
【发布时间】:2020-11-20 21:39:06
【问题描述】:

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

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

【问题讨论】:

  • 您是否首先在 Web 上搜索有关 ECS for Java 的文章、博客文章和 github 存储库?如果我随意的谷歌搜索有任何迹象的话,有很多。
  • @Mike'Pomax'Kamermans 有一些用于 java 的 ecs 框架。但是他们都没有提到缓存友好性问题。这些框架似乎只是模仿ecs的设计模式,没有实现ecs的最大性能优势

标签: java entity-component-system


【解决方案1】:

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

【讨论】:

  • 但是如果没有值类型的对象,你怎么能实现性能提升呢?
猜你喜欢
  • 1970-01-01
  • 2013-10-08
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 2013-05-17
  • 2023-03-17
相关资源
最近更新 更多