java - java中的ecs:如何享受缓存友好?
问题描述
ECS(entity component system)之所以像entitas in unity一样具有出色的性能,是因为相同类型的组件被放在同一个内存块中,这使得组件迭代快速高效。
然而,在java中我们无法管理对象内存位置,所以ecs似乎不如java语言中的c++有用。这是真的吗,或者实际上有一些方法可以在 java中实现缓存友好的 ecs ?
解决方案
在 Java 中,您还没有值类型对象(请参阅Project Valhalla)这意味着您不会在同一个块中创建对象数组,但这并不意味着您不能拥有具有性能的 Java 的 ECS与 C/C++ 的 ECS 相当。在这方面,我已经在 Java 17 中启动了一个 ECS项目,该项目旨在展示与系统语言相似的性能,并展示看起来非常有前途的基准。
推荐阅读
- sql - 对数组进行排序并为数组中的每个元素创建一个 JSON 对象
- angular - 如何使用 ngx-cron-job?
- r - 使用 R 将前几行分组为正值,然后是另一组为负值,依此类推
- python-3.x - Python - 删除单词和点之间的多个空格
- c - 该程序删除多余空格有什么问题?
- printing - 为什么 Microsoft Edge 使用超大字体打印
- go - 填充切片时索引超出范围
- discord - 通过控制台进入 Discord 频道
- android - 杀死并重新运行应用程序后反应本机推送通知不起作用
- node.js - 如何在 VSCode 中的 NodeJS 的单一解决方案中运行两台服务器?